gpt4 book ai didi

elasticsearch - 如何将完全匹配查询与文本搜索查询结合起来?

转载 作者:行者123 更新时间:2023-12-03 02:14:11 24 4
gpt4 key购买 nike

我对字段状态location_id的完全匹配查询如下所示:

{'query': {'constant_score': {'filter': {'bool': {
'must': [{'bool': {'should': [{'terms': {'status': ['Open', 'not complete']}}]}},
{'bool': {'should': [{'terms': {'location_id': [1652]}}]}}],
'must_not': []}}}},
'sort': [{'id': {'order': 'asc', 'unmapped_type': 'long'}}]}
假设上面的查询返回50条记录,现在我要在这50条记录中的某一列中搜索一个单词。例如,列是描述,单词是“测试”。如何将以上查询与此搜索词查询结合使用。
搜索列可以是必须查询中的一个(状态/位置)
简而言之,我希望所有状态为“打开/未完成”且location_id == 1652的记录以及文本中任何位置具有单词“test”的描述字段
我尝试了 simple_query_Stringquery_string,但出现错误。不知道在哪里可以放在上面的嵌套查询中。
我在下面用 匹配的查询进行了尝试,但未写入任何记录:
{'query': {'constant_score': {'filter': {'bool': {
'must': [{'bool': {'should': [{'terms': {'status': ['Open', 'not complete']}}]}},
{'bool': {'should': [{'terms': {'location_id': [1652]}}]}},
{'bool': {'should': [{'match': {'description': 'test'}}]}}],
'must_not': []}}}},
'sort': [{'id': {'order': 'asc', 'unmapped_type': 'long'}}]}
使用 的工作查询query_string
{'query': {'constant_score': {'filter': {'bool': {
'must': [{'bool': {'should': [{'terms': {'status': ['Open', 'not complete']}}]}},
{'bool': {'should': [{'terms': {'location_id': [1652]}}]}},
{'query_string': {"default_field": "description",
"query": "*test*"}}],
'must_not': []}}}},
'sort': [{'id': {'order': 'asc', 'unmapped_type': 'long'}}]}

最佳答案

您可以在其中使用boolean query

A query matches documents matching boolean combinations of otherqueries.


添加带有索引数据,搜索查询和搜索结果的工作示例。
以下搜索查询符合您的以下要求:

In short I want all the records having status Open/Not complete andlocation_id == 1652 and descreption field having word "test" anywherein the text


索引数据:
{
"description":"test",
"status":["open","not connected"],
"location_id":[1652]
}
搜索查询:
{
"query": {
"bool": {
"must": [
{
"match": {
"description": "test"
}
},
{
"terms": {
"status": [
"open",
"not complete"
]
}
},
{
"terms": {
"location_id": [
"1652"
]
}
}
]
}
}
}
搜索结果:
"hits": [
{
"_index": "stof_63936644",
"_type": "_doc",
"_id": "1",
"_score": 2.287682,
"_source": {
"description": "test",
"status": [
"open",
"not connected"
],
"location_id": [
1652
]
}
}
]

关于elasticsearch - 如何将完全匹配查询与文本搜索查询结合起来?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63936644/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com