gpt4 book ai didi

elasticsearch - 使用Ngram索引的Elasticsearch未找到部分匹配项

转载 作者:行者123 更新时间:2023-12-03 00:32:00 25 4
gpt4 key购买 nike

所以我有一个像这样创建的elasticsearch索引:

curl -XPUT 'http://localhost:9200/person' -d '{
"settings": {
"number_of_shards": 1,
"analysis": {
"filter": {
"autocomplete_filter": {
"type": "edge_ngram",
"min_gram": 1,
"max_gram": 20
}
},
"analyzer": {
"autocomplete": {
"type": "custom",
"tokenizer": "standard",
"filter": [
"lowercase",
"autocomplete_filter"
]
}
}
}
}
}'

查询一个叫“ian”的人时,我得到两个结果
curl -XGET http://localhost:9200/person/_search -d '{
"query": {
"match": {
"_all": "ian"
}
}
}’

但是在仅查询字母 ia时,我应该获得尽可能多或更多的结果,但是我却没有得到任何结果:
curl -XGET http://localhost:9200/person/_search -d '{
"query": {
"match": {
"_all": "ia"
}
}
}’

我的 edge_ngram过滤器设置有问题吗?我该如何解决?

编辑:澄清一下,我想我的插入语句按照此思路
curl -XPOST "http://localhost:9200/person/RANDOM_STRING HERE/ANOTHER_RANDOM_STRING" -d "{
"field1" : "value",
"field2" : "value",
"field3" : "value"
}"

插入后,我希望对所有字段进行edge_ngram分析,以便我可以通过这些字段中的任何一个按部分字符串进行搜索,并返回此结果。

最佳答案

如果只想对每种类型和所有属性使用分析器(除非另外指定),您只需为索引设置“默认”分析器。我在ES文档中很难找到它们(它们并不总是非常友好),但这是一个示例。我正在使用ES 1.5,尽管我认为这并不重要。

PUT /person
{
"settings": {
"number_of_shards": 1,
"analysis": {
"filter": {
"autocomplete_filter": {
"type": "edge_ngram",
"min_gram": 1,
"max_gram": 20
}
},
"analyzer": {
"default": {
"type": "custom",
"tokenizer": "standard",
"filter": [
"lowercase",
"autocomplete_filter"
]
}
}
}
}
}

然后我为文档建立索引并运行您的查询,它运行良好:
POST /person/doc/_bulk
{"index":{"_id":1}}
{"name":"Ian"}
{"index":{"_id":2}}
{"name":"Bob Smith"}

POST /person/_search
{
"query": {
"match": {
"_all": "ia"
}
}
}
...
{
"took": 1,
"timed_out": false,
"_shards": {
"total": 1,
"successful": 1,
"failed": 0
},
"hits": {
"total": 1,
"max_score": 1.4142135,
"hits": [
{
"_index": "person",
"_type": "doc",
"_id": "1",
"_score": 1.4142135,
"_source": {
"name": "Ian"
}
}
]
}
}

这是代码:

http://sense.qbox.io/gist/4e2114aafc4f3c507b4f23da8bb83f3ab00e2288

关于elasticsearch - 使用Ngram索引的Elasticsearch未找到部分匹配项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29829816/

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