当我尝试:
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/