[英]score synonyms equally in Elasticsearch
我們可以在elasticsearch中對原始字符串和同義詞進行平均評分嗎?
例如。 我將同義詞文件創建為:
pvt, 私人
有限公司,有限公司
我使用同義詞標記過濾器創建了一個索引。 然后我索引了兩個文檔:
curl -XPOST "http://localhost:9200/test1/test?pretty" -d
'{ "entityName" : "ABC International Pvt Ltd"}'
curl -XPOST "http://localhost:9200/test1/test?pretty" -d
'{ "entityName" : "ABC International Private Limited"}'
現在,當我搜索“ABC International Pvt Ltd”時,第一個文檔的得分為 1.15,第二個文檔的得分為 0.57。
有沒有辦法平等對待同義詞?
使用以下設置創建索引:
curl -XPUT 'localhost:9200/test1?pretty' -H 'Content-Type: application/json' -d'
{
"settings" : {
"index" : {
"analysis":{
"analyzer":{
"my_analyzer":{
"tokenizer":"standard",
"filter":["asciifolding", "standard", "lowercase", "my_metaphone", "synonym"]
}
},
"filter":{
"my_metaphone":{
"type":"phonetic",
"encoder":"metaphone",
"replace":false
},
"synonym" : {
"type" : "synonym",
"synonyms_path" : "synonyms.txt",
"ignore_case" : "true"
}
}
}
}
}
}'
在創建索引時添加映射完成了這項工作。 如果沒有映射,甚至沒有應用同義詞標記過濾器。 下面是我用來創建索引的命令。
curl -XPUT 'localhost:9200/test1?pretty' -H 'Content-Type: application/json' -d'
{
"settings" : {
"analysis":{
"filter":{
"my_metaphone":{
"type":"phonetic",
"encoder":"metaphone",
"replace":false
},
"synonym" : {
"type" : "synonym",
"synonyms_path" : "synonym.txt",
"ignore_case" : "true"
}
},
"analyzer":{
"my_analyzer":{
"type":"custom",
"tokenizer":"standard",
"filter":["asciifolding", "standard", "lowercase", "my_metaphone", "synonym"]
}
}
}
},
"mappings": {
"test": {
"properties": {
"text": {
"type": "text",
"analyzer": "my_analyzer",
"search_analyzer": "my_analyzer"
}
}
}
}
}'
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.