gpt4 book ai didi

elasticsearch - 无法从基于查询和文档标记化的 Elasticsearch 中获得正确的结果

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

我正在尝试实现一个搜索系统,我需要在其中使用 Edge NGRAM Tokenizer。创建索引的设置如下所示。我对文档和搜索查询使用了相同的分词器。(文件为波斯语)

PUT /test
{
"settings": {
"analysis": {
"analyzer": {
"autocomplete": {
"tokenizer": "autocomplete",
"filter": [
"lowercase"
]
},
"autocomplete_search": {
"tokenizer": "autocomplete"
}
},
"tokenizer": {
"autocomplete": {
"type": "edge-ngram",
"min_gram": 2,
"max_gram": 10,
"token_chars": [
"letter"
]
}
}
}
},
"mappings": {
"_doc": {
"properties": {
"title": {
"type": "text",
"analyzer": "autocomplete",
"search_analyzer": "autocomplete_search"
}
}
}
}
}

当我在文档中搜索术语“آلمانو”得到 0 个匹配(结果)时出现问题,而我有一个包含数据的文档:“آلمان خوب است”。

如您所见,分析术语“آلمانی”的结果显示它生成 token “آلمان”并正常工作。

{
"tokens" : [
{
"token" : "آ",
"start_offset" : 0,
"end_offset" : 6,
"type" : "<ALPHANUM>",
"position" : 0
},
{
"token" : "آل",
"start_offset" : 0,
"end_offset" : 6,
"type" : "<ALPHANUM>",
"position" : 0
},
{
"token" : "آلم",
"start_offset" : 0,
"end_offset" : 6,
"type" : "<ALPHANUM>",
"position" : 0
},
{
"token" : "آلما",
"start_offset" : 0,
"end_offset" : 6,
"type" : "<ALPHANUM>",
"position" : 0
},
{
"token" : "آلمان",
"start_offset" : 0,
"end_offset" : 6,
"type" : "<ALPHANUM>",
"position" : 0
},
{
"token" : "آلمانی",
"start_offset" : 0,
"end_offset" : 6,
"type" : "<ALPHANUM>",
"position" : 0
}
]
}

下面显示的搜索查询获得 0 个匹配。

GET /test/_search
{
"query": {"match": {
"title": {"query": "آلمانی" , "operator": "and"}
}}
}

但是,搜索词“آلما”会返回包含数据“آلمان خوب است”的文档。我该如何解决这个问题?

非常感谢您的协助。

最佳答案

我找到了 Ricardo Heck 的这篇 DevTicks 帖子,它解决了我的问题。 enter the link for more detailed description

我像这样更改了我的映射设置:

    "mappings": {
"_doc": {
"properties": {
"title": {
"type": "text",
"analyzer": "autocomplete",
"search_analyzer": "autocomplete_search",
"fields": {
"ngram": {
"type": "text",
"analyzer": "autocomplete"
}
}
}
}
}
}

现在我通过搜索术语“آلمانی”得到了文档“آلمان خوب است”。

关于elasticsearch - 无法从基于查询和文档标记化的 Elasticsearch 中获得正确的结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54268240/

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