elasticsearch - Elasticsearch邻近查询

标签 elasticsearch

我正在寻找可以给我以下结果的查询

查找在它们之间没有“$$”的“A”和“B”

例如

doc1:“A $$ B C D”

doc2:“B $$ A C D”

doc3:“A B $$ C D”

doc4:“A C D B $$”

ans应该是doc3和doc4

最佳答案

Elasticsearch对文本和索引进行倒排索引分析。因此,关键是要知道如何对数据建立索引以了解如何查询数据(应该以查询的方式对数据建立索引)。

考虑以下情况,其中上述文本是使用标准分析器索引的,这是默认值(Elasticsearch提供_analyze API以测试如何分析数据)

 curl http://localhost:9200/sampleindex/_analyze?tokenizer=whitespace&filters=lowercase -d ' { "text" : "ab $$ cc", "analyzer": "standard" } ' 

 {"tokens":[{"token":"ab","start_offset":0,"end_offset":2,"type":"<ALPHANUM>","position":0},{"token":"cc","start_offset":6,"end_offset":8,"type":"<ALPHANUM>","position":1}]}

请注意,索引不知道 token '$$',这意味着无法查询它(否定或肯定)。

如果该字段的索引映射包含适当的分析器,该分析器会将'$$'作为 token ,则可以在must not中使用简单的短语查询。

关于elasticsearch - Elasticsearch邻近查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58767354/

相关文章:

tomcat - 如何使用 LogStash 在 tomcat 日志文件上创建索引

performance - 搜索响应时间不稳定地翻了一番

elasticsearch - Elasticsearch返回结果的上下文(命中前后10行)

elasticsearch - 通过Tire更新Elasticsearch设置

elasticsearch - 难于对Elasticsearch批量导入?

Elasticsearch 内存占用过高

elasticsearch - 碎片和副本 Elasticsearch

php - Elasticsearch:为PHP数组中的多个匹配设置参数

Elasticsearch 启动错误 :Native controller process has stopped - no new native processes can be started

elasticsearch - 如何使热门匹配结果多样化?