【发布时间】:2014-10-29 16:08:23
【问题描述】:
我碰巧研究了 Elasticsearch 中的一个场景,其中邻近搜索没有按预期工作。下面我来解释一下。
当我尝试搜索词“apple samsung”~1 时,它为我带来了来自本地集群的大约 10 个结果。但是当邻近词是“三星苹果”~1 时,它只给我带来了 2 个结果。
根据以下 URL 中的 Elasticsearch 文档,这两个术语应该给我带来相同数量的结果
这里有人可以帮助我吗?
提前致谢, 马诺吉
【问题讨论】:
我碰巧研究了 Elasticsearch 中的一个场景,其中邻近搜索没有按预期工作。下面我来解释一下。
当我尝试搜索词“apple samsung”~1 时,它为我带来了来自本地集群的大约 10 个结果。但是当邻近词是“三星苹果”~1 时,它只给我带来了 2 个结果。
根据以下 URL 中的 Elasticsearch 文档,这两个术语应该给我带来相同数量的结果
这里有人可以帮助我吗?
提前致谢, 马诺吉
【问题讨论】:
这将取决于您的数据 - 如果您的查询是:
curl -XGET 'http://localhost:9200/test/message/_search?pretty' -d '{
"query": {
"query_string": { "query":"\"apple samsung\"~1"}
}
}'
这是slop 之一,它会匹配
"samsung apple"
"samsung xxxx apple"
要匹配“apple”首先出现的位置,您需要指定 slop 2:
curl -XGET 'http://localhost:9200/test/message/_search?pretty' -d '{
"query": {
"query_string": { "query":"\"apple samsung\"~2"}
}
}'
【讨论】: