gpt4 book ai didi

elasticsearch - 根据单词索引更改搜索顺序

转载 作者:行者123 更新时间:2023-12-02 22:54:00 27 4
gpt4 key购买 nike

有什么方法可以增加文档开头的用语吗?例如我有3个文件。

Medicine XXX
Sulpher This medicine contains sulpher and should be taken only after consultation with your doctor.

Medicine YYY
contains: sulpher Not recommended by most physicians

Medicine ZZZ
This medicine works like sulpher but does not contain sulpher at all.

XXX应该在搜索词“Sulpher”的顶部列出,因为这是该文档中的第一个单词。如果YYY列在顶部,则可以,因为与XXX相同。但是ZZZ应该永远是最后一个。换句话说,在“左侧”找到的术语应比在“右侧”找到的术语具有更高的优先级。

最佳答案

您可以通过小写标准化的术语位置来提高:

PUT sulphur
{
"settings": {
"analysis": {
"normalizer": {
"keyword_lowercase": {
"type": "custom",
"filter": ["lowercase"]
}
}
}
},
"mappings": {
"properties": {
"text": {
"type": "text",
"fields": {
"keyword": {
"type": "keyword",
"normalizer": "keyword_lowercase"
}
}
}
}
}
}

POST sulphur/_doc
{"text":"This medicine works like sulpher but does not contain sulpher at all."}
POST sulphur/_doc
{"text":"contains: sulpher Not recommended by most physicians"}
POST sulphur/_doc
{"text":"Sulpher This medicine contains sulpher and should be taken only after consultation with your doctor."}

然后
GET sulphur/_search
{
"query": {
"bool": {
"must": [
{
"function_score": {
"query": {
"match": {
"text": "sulpher"
}
},
"script_score": {
"script": """
def pos = doc['text.keyword'].value.indexOf('sulpher');
return Math.exp((2.0/(pos+1)))
"""
},
"boost_mode": "replace"
}
}
]
}
}
}

屈服
[
{
"_index":"sulphur",
"_type":"_doc",
"_id":"sf5S2nEBW-D5QnrWODvB",
"_score":7.389056,
"_source":{
"text":"Sulpher This medicine contains sulpher and should be taken only after consultation with your doctor."
}
},
{
"_index":"sulphur",
"_type":"_doc",
"_id":"sP5S2nEBW-D5QnrWNjtw",
"_score":1.1993961,
"_source":{
"text":"contains: sulpher Not recommended by most physicians"
}
},
{
"_index":"sulphur",
"_type":"_doc",
"_id":"r_5S2nEBW-D5QnrWNDuw",
"_score":1.079959,
"_source":{
"text":"This medicine works like sulpher but does not contain sulpher at all."
}
}
]

关于elasticsearch - 根据单词索引更改搜索顺序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61568717/

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