在我的Elasticsearch中,我有一个像这样的文档:
"field_4" : [
"ip_address",
"127.0.0.1"
],
"field_1" : 6522000300012,
"field_2" : "asdfa",
"field_26" : [
"address",
"HongKong"
]
我的 body 是:
body = {
"query": {
"bool": {
"must": [{"query_string": {"query": "*p*"}}]
}
}
}
现在,我的查询可以找到所有带有字符串“P”的字段,但是对于列表类型字段,我不想查询它们的第一个元素。
我的意思是无法查询以上文档,因为字符串“p”仅存在于列表类型filed_4的第一个元素中。
有没有一种方法可以编写查询,而该查询在Elasticsearch中不包含列表的第一个元素?
谢谢!
最佳答案
Elasticsearch query_string支持fields
来查询特定字段。因此,您只能指定要查询的字段
body = {
"query": {
"bool": {
"must": [{"query_string": {"query": "*p*","fields":["field_1","field_2","field_26"]}}]
}
}
}
关于elasticsearch - 如何使用 “query_string”查询文档并过滤出列表字段的第一个元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58533641/