问题标签 [elasticsearch-dsl-py]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
regex - 包含“!”的弹性搜索查询 在正则表达式查询中不匹配任何结果
查询下方的弹性搜索不返回任何结果:
1.) {"query":{"regexp":{"field_name":".*f04((?!z).)*"}}
为什么像上面这样的查询没有返回任何结果?
我期待这样的结果:
['f00bar', 'f04bar', 'f04barbuh', 'f04ba']
而下面一个返回:
2.) {"query":{"regexp":{"field_name":".*f04((?!z).)*.*"}}
此返回的结果:['f04bar', 'f04barbuh', 'f04ba', 'f04baz']
我知道第二个查询返回结果是因为 .* 最后,正则'!'
表达式有什么问题,应该是别的吗?我们如何使用!
作为 regexp 的一部分来指定ba
不应该跟z
.
python - 使用 Elastic search dsl python analyze api
如何在弹性搜索dsl python中使用默认_analyze?
我的查询如下所示:
我在哪里放analyze() method
,以便我可以看到我"f04((?!z).)*"
是如何被分解的?实际上,它似乎'!'
不能用作正则表达式。'!'
如果默认分析器无法作为正则表达式字符,我该如何更改分析器?
我是新手,很难准确地将分析方法放入我的代码中。请帮忙。
regex - 负前瞻正则表达式在 ES dsl 查询中不起作用
我的 Elastic 搜索的映射如下所示:
问题是:
我正在使用 elasticsearch_dsl Q() 形成 ES 查询。当我的查询包含任何复杂的正则表达式时,它在大多数情况下都可以正常工作。但如果它包含正则表达式字符'!',它就完全失败了 在里面。当搜索词包含“!”时,它不会给出任何结果 在里面。
例如:
1.)Q('regexp', field1 = "^[a-z]{3}.b.*")
(完美运行)
2.)Q('regexp', field1 = "^f04.*")
(完美运行)
3.)Q('regexp', field1 = "f00.*")
(完美运行)
4.)Q('regexp', field1 = "f04baz?")
(完美运行)
在以下情况下失败:
5.)Q('regexp', field1 = "f04((?!z).)*")
(失败,没有结果)
我尝试在字段中添加“分析器”:“关键字”以及“类型”:“关键字”,但在这种情况下没有任何效果。
在浏览器中,我尝试检查分析器:关键字在输入失败的情况下将如何工作:
http://localhost:9210/search/_analyze?analyzer=keyword&text=f04((?!z).) *
结果似乎在这里看起来不错:
我正在运行如下查询:
请帮助,这真的是一个烦人的问题,因为所有正则表达式字符在所有查询中都可以正常工作,除了!。
另外,我如何检查我的映射中当前应用了上述设置的分析器?
python-3.x - Python ElasticSearch 查询显示多重匹配的误报
尝试使用 ElasticSearch 和 python 在包含研究主题的 csv 数据集上为最终用户创建具有全文搜索功能的可搜索仪表板。
搜索将返回相关 csv 行的行索引。有多个列,即_id, topic
如果我尝试查询数据集以获取"cyber security"
. 我得到的大部分结果都包含单词"cyber security"
,或者"cyber-security"
返回了其他涉及食品安全和军队安全的行。对于一般搜索词,如何避免这种情况?
此外,搜索词“ cyber
”或"cyber security"
不会选择包含诸如"cybersecurity"
或之类的某些主题"cybernetics"
我将如何编写一个可以捕获这些的条件?请记住,这也需要以另一种方式工作,即如果我搜索"food security"
网络主题不应该出现。
编辑:根据评论中的要求添加示例要求
csv 文件可以如下所示。
可接受
搜索词是cyber
-> 3,5,7,9,10,11,12
搜索词是security
-> 除 11,14,15 之外的所有内容
搜索词是cyber security
或cybersecurity
-> 3,5,7,9,10,11,12 (在这种情况下,网络需要具有更高的优先级,用户不会对其他安全类型感兴趣)
搜索词是food security
->1,2
完美案例
搜索词是cyber
or -> cyber security
3,4,5,7,9,10,11,12,14cybersecurity
考虑到密码学和生物信息学几乎与网络安全相关,我是否应该使用文档集群来实现这一点(ML 技术)?
python - 使用带有布尔数据类型的python在ElasticSearch中添加一个字段?
如何使用 python 在 Elasticsearch 中添加特定数据类型(布尔值)的新字段。这个查询正确吗?
elasticsearch - 如何在更新 Elasticsearch 时锁定文档?
我在我的 python 代码中使用 elasticsearch-dsl python 库。我试图更新文档,因此为了避免并发竞争条件,我需要获取并释放文档上的锁定。如何使用这个库来做到这一点。我已经浏览了它的文档,但没有找到任何可以做的事情。
python - elasticsearch-DSL库在保存文档时为文本字段设置默认值
我们如何检查来自 elasticsearch-DSL 库的 Field 对象(例如 Text、Integer、Keyword)是否不包含任何值,比如 None 或空字符串?在这种情况下,我需要在将 Document 保存到 ES 之前,使用某种默认但动态的值设置 Document 对象中的字段。谢谢。
python-3.x - Elasticsearch dsl OR 查询形成
我有多个文档的索引。这些文件包含以下字段:
- 姓名
- adhar_number
- pan_number
- acc_number
我想创建一个 elasticsearch dsl 查询。对于此查询,有两个输入可用,例如 adhar_number 和 pan_number。此查询应与此匹配OR 条件。
示例:如果一个文档仅包含提供的 adhar_number,那么我也想要该文档。
我有一本包含以下内容的字典(my_dict):
我尝试如下:
它创建以下查询:
上面的代码为我提供了AND 条件而不是OR Condition的结果。
请向我提出包含 OR 条件的好建议。
elasticsearch - elasticsearch_dsl 响应多桶聚合
找到了这个关于如何使用 elasticsearch_dsl 构建嵌套聚合的线程Generate multiple buckets in aggregation
有人可以展示如何遍历响应以获得第二个存储桶结果吗?
不起作用,如何获取 num_servers 或 server_list 中的内容?
elasticsearch - 如何使用空格和其他字符查询嵌套路径
我有一个相当“复杂”的弹性搜索文档,路径中存在空格。有什么方法可以让查询在没有重新索引的情况下工作?:)
我当前的代码看起来像这样。
但这当然会由于 .Q&A 导致不正确的查询。
我也尝试过使用线程[“Q&A”],但这也不起作用。
理想情况下,我不想重新索引,因为集合非常大。