1
假设,我的表有两个字段:用户名和年龄 我想检查列表用户名:[约翰,玛丽,吉姆],该用户有“年龄”是20。我做? 我想我会合并以下2个查询:Elasticsearch:合并条件查询和匹配查询
期限查询: { “术语”:{ “用户”: “约翰”, “玛丽”, “吉姆”] } }
和匹配查询:
{ “查询”:{ “匹配”:{ “年龄”:20 }} }
但我不确定。请帮帮我。谢谢。
假设,我的表有两个字段:用户名和年龄 我想检查列表用户名:[约翰,玛丽,吉姆],该用户有“年龄”是20。我做? 我想我会合并以下2个查询:Elasticsearch:合并条件查询和匹配查询
期限查询: { “术语”:{ “用户”: “约翰”, “玛丽”, “吉姆”] } }
和匹配查询:
{ “查询”:{ “匹配”:{ “年龄”:20 }} }
但我不确定。请帮帮我。谢谢。
terms
查询似乎适合名称。不过,我会为“年龄”推荐一个term
过滤器,因为它是一个数值。通常,match
查询适用于您打算在其上进行全文搜索的analyzed
字段。
举个例子,你用filtered
查询像这样一起可以将自己的两个搜索条件:
{
"query": {
"filtered": {
"query": {
"terms": {
"user_name": ["john","mary","jim"]
}
},
"filter": {
"term": {
"age": 20
}
}
}
}
}
另一种可能性是使用bool
查询结合搜索条件。例如。
{
"query": {
"bool": {
"must": [
{
"terms": {
"user_name": ["john","mary","jim"]
}
},
{
"term": {
"age": 20
}
}
]
}
}
}
非常感谢。我知道了:) –
@TriPham很高兴我能帮上忙! – BrookeB