gpt4 book ai didi

search - Elasticsearch 中的索引和搜索分析器:将准确的字符串作为第一个结果时遇到麻烦

转载 作者:行者123 更新时间:2023-12-03 01:53:49 24 4
gpt4 key购买 nike

我正在用 Elasticsearch 对Wikipedia的主题编制索引进行测试。

在我的设置下面。

我期望的结果是,第一个结果与确切的字符串匹配-特别是如果字符串仅由一个单词组成。

代替:

搜索“g”

curl "http://localhost:9200/my_index/_search?q=name:g&pretty=True"

退货
[Changgyeonggung,Lopadotemachoselachogaleokranioleipsanodrimhypotrimmatosilphioparaomelitokatakechymenokichlepikossyphophattoperisteralektryonoptekephalliokigklopeleiolagoiosiraiobaphetraganopterygon,..]作为第一个结果(是,[偶然,很奇怪!):

我认为是因为结果相对于其他单词而言更重“G”字母..但是:

搜索“google”:
curl "http://localhost:9200/my_index/_search?q=name:google&pretty=True"

退货

[Googlewhack,IGoogle,Google +,Google ..]是第一名,我希望Google成为第一名。

我的设置有什么问题,如果不存在,则无法完全匹配关键字?

我使用索引和搜索分析器的原因是此答案中建议的原因:[ http://nifty.works/about/BgdKMmwV6B3r4pXJ/]

设定值
# make index with mapping
curl -X PUT localhost:9200/test-ngram -d '
{
"settings": {
"analysis": {
"analyzer": {
"index_analyzer": {
"type" : "custom",
"tokenizer": "lowercase",
"filter": ["asciifolding", "title_ngram"]
},
"search_analyzer": {
"type": "custom",
"tokenizer": "standard",
"filter": ["standard", "lowercase", "stop", "asciifolding"]
}
},
"filter": {
"title_ngram" : {
"type" : "nGram",
"min_gram" : 1,
"max_gram" : 10
}
}
}
},

"mappings": {
"topic": {
"properties": {
"name": {
"type": "string",
"boost": 10.0,
"index": "analyzed",
"index_analyzer": "index_analyzer",
"search_analyzer": "search_analyzer"
}
}
}
}
}
'

最佳答案

这是因为默认情况下,相关性以另一种方式起作用(请检查有关TF / IDF的部分
https://www.elastic.co/guide/en/elasticsearch/guide/current/relevance-intro.html)
如果要在结果的顶部具有完全匹配的术语,同时还要匹配子字符串等,则需要将名称索引为多字段,如下所示:

"name": {
"type": "string",
"index": "analyzed",
// other analyzer stuff here
"fields": {
"raw": { "type": "string", "index": "not_analyzed" }
}
}

然后在 bool(boolean) 查询中,您需要同时查询name和name.raw并提高name.raw的结果

关于search - Elasticsearch 中的索引和搜索分析器:将准确的字符串作为第一个结果时遇到麻烦,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38161530/

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