Elasticsearch 版本 - .90.1
以下效果完美。
cat names
{"index":"events","type":"news"}
{"query":{"term":{"Type":"MarketEvent"}}}
{"query":{"term":{"Type":"MarketEvent"}}}
curl -XGET 'http://localhost:9200/_msearch' --data-binary @names
以下也适用
{"index":"events","type":"news"}
{"query":{"bool":{"must":[{"query_string":{"query":"*","fields":["Events.Event"],"default_operator":"AND"}},{"term":{"Type":"MarketEvent"}}]}}}
但是超过 1 个 bool 的查询不起作用 -
cat names
{"index":"events","type":"news"}
{"query":{"bool":{"must":[{"query_string":{"query":"*","fields":["Events.Event"],"default_operator":"AND"}},{"term":{"Type":"MarketEvent"}}]}}}
{"query":{"bool":{"must":[{"query_string":{"query":"*","fields":["Events.Event"],"default_operator":"AND"}},{"term":{"Type":"MarketEvent"}}]}}}
curl -XGET 'http://localhost:9200/_msearch' --data-binary @names
{"error":"must doesn't support arrays"}
我在日志中没有看到任何相关日志(也不在 Debug模式下) 这是一个错误吗?
最佳答案
_msearch
查询应采用以下格式:
header\n
body\n
header\n
body\n
在第一个和最后一个查询中,第二个 header 丢失。仅由于 header 的解析方式,第一个查询不会生成错误。为了使此查询正常工作,names
文件应更改为
{"index":"events","type":"news"}
{"query":{"bool":{"must":[{"query_string":{"query":"*","fields":["Events.Event"],"default_operator":"AND"}},{"term":{"Type":"MarketEvent"}}]}}}
{"index":"events","type":"news"}
{"query":{"bool":{"must":[{"query_string":{"query":"*","fields":["Events.Event"],"default_operator":"AND"}},{"term":{"Type":"MarketEvent"}}]}}}
关于full-text-search - msearch 不能与 bool 一起使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16995294/