gpt4 book ai didi

elasticsearch - Elasticsearch术语查询到数字 token

转载 作者:行者123 更新时间:2023-12-02 22:47:51 25 4
gpt4 key购买 nike

我需要向Elasticsearch数据库解释术语查询的一些奇怪行为,该查询在字符串中包含数字部分。查询非常简单:

{
"query": {
"bool": {
"should": [
{
"term": {
"address.street": "8 kvetna"
}
}
]
}
}
}

问题是术语 8 kvetna 返回空结果。我试图对其进行_analyze分析,使其生成常规标记,如8,k,kv,kve...。此外,我很确定数据库中存在值8 kvetna。
这是该字段的映射:
{
"settings": {
"index": {
"refresh_interval": "1m",
"number_of_shards": "1",
"number_of_replicas": "1",
"analysis": {
"filter": {
"autocomplete_filter": {
"type": "edge_ngram",
"min_gram": "1",
"max_gram": "20"
}
},
"analyzer": {
"autocomplete": {
"filter": [
"lowercase",
"asciifolding",
"autocomplete_filter"
],
"type": "custom",
"tokenizer": "standard"
}
"default": {
"filter": [
"lowercase",
"asciifolding"
],
"type": "custom",
"tokenizer": "standard"
}
}
}
}
},
"mappings": {
"doc": {
"dynamic": "strict",
"_all": {
"enabled": false
},
"properties": {
"address": {
"properties": {
"city": {
"type": "text",
"analyzer": "autocomplete"
},
"street": {
"type": "text",
"analyzer": "autocomplete"
}
}
}
}
}
}
}

是什么导致了这个奇怪的结果?我不明白谢谢你的帮助。

最佳答案

到目前为止很好的开始!唯一的问题是您正在使用term查询,而应该使用match一个。 term查询将尝试与8 kvetna完全匹配,而这并不是您想要的。以下查询将起作用:

{
"query": {
"bool": {
"should": [
{
"match": { <--- change this
"address.street": "8 kvetna"
}
}
]
}
}
}

关于elasticsearch - Elasticsearch术语查询到数字 token ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56631697/

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