假设我有一组文件以a-z为键。 我正在解雇这个术语查询:
curl -X GET localhost:9200/memphis/pincode/_search?pretty=json -d '{"query":{"term":{"a":"abcd", "b":"wxyz"}}}'
这将返回所有'a'值为abcd且'b'值为wxyz的文档。 但是,如果我想要所有这些文件作为回报(如果'a'的值是abcd而'b'的值是wxyz)或者('a'的值是abcd而标签'b'没有',那该怎么办?存在)或(标记a不存在,'b'的值是wxyz)。
这可能。
我正在使用ruby并使用'Tire'gem连接到elasticsearch。因此,如果我也获得轮胎的相应语法,那将会更有帮助。
提前致谢
-Azitabh
答案 0 :(得分:0)
您可以使用should子句在Bool查询中包装2个查询。
这意味着点击两个查询的文档将获得更高的分数。
请参阅http://www.elasticsearch.org/guide/reference/query-dsl/bool-query.html
答案 1 :(得分:0)
我在其他论坛上得到了答案。 放在这里只是为了完整:
http://www.elasticsearch.org/guide/reference/query-dsl/missing-filter.html
{
"query" : {
"constant_score" : {
"filter" : {
"must" : [
{
"should": [
{
"term": {"a" : "abcd"}
},
{
"missing": {"field": "a"}
}
]
},
{
"should": [
{
"term": {"b" : "wxyz"}
},
{
"missing": {"field": "b"}
}
]
},
]
}
}
}
}