当我尝试:

curl -XPOST 'http://localhost:9200/index/type/_search?search_type=scan&scroll=2m' -d '{"query": {"match": {"host":"xxxx"}}}'

我收到了scroll_id。然后我发出:
curl -XPOST 'http://localhost:9200/_search/scroll?scroll=1m&scroll_id=......'

但是响应中包含属于其他主机的日志。
为什么以及如何解决呢?

非常感谢

最佳答案

尝试使用字词查询而不是匹配项:

{"query": {"term": {"host":"xxxx"}}}

这将查找确切的值,而不是分析您对xxxx的值,而有关差异的讨论是:https://www.elastic.co/guide/en/elasticsearch/guide/current/term-vs-full-text.html

如果这不起作用,则也可能是正在分析该字段,并且映射也需要更新。您可以共享索引的映射并输入:http://localhost:9200/index/_mapping/type/?pretty吗?

关于elasticsearch - 查询字符串在Elasticsearch扫描和滚动搜索中不起作用,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/32619266/

10-12 15:58