在我的Elasticsearch中,我有一个像这样的文档:
"field_4" : [
"ip_address",
"127.0.0.1"
],
"field_1" : 6522000300012,
"field_2" : "asdfa",
"field_26" : [
"address",
"HongKong"
]
我的身体是:
body = {
"query": {
"bool": {
"must": [{"query_string": {"query": "*p*"}}]
}
}
}
现在我的查询可以找到所有带有字符串“ P”的字段,但是对于列表类型的字段,我不想查询它们的第一个元素。
我的意思是无法查询以上文档,因为字符串“ p”仅存在于列表类型filed_4的第一个元素中。
有没有一种方法可以编写一个在Elasticsearch中搜索时不包含列表的第一个元素的查询? 谢谢!
答案 0 :(得分:0)
Elasticsearch query_string支持fields
来查询特定字段。因此,您只能指定要查询的字段
body = {
"query": {
"bool": {
"must": [{"query_string": {"query": "*p*","fields":["field_1","field_2","field_26"]}}]
}
}
}