问题描述
我想实现一个排序的结果集,其中自动建议中搜索词开头的词出现在顶部,然后是在文本中“包含”它的词:例如: 搜索词:倡导者 结果:
拥护x
拥护Yx
一些倡导者
然而,我的结果集为包含该术语的结果提供了更多的分数,而不是那些“以”它开头的结果。我该如何解决这个问题:
映射,js:
{
"settings": {
"index": {
"max_ngram_diff": 39
},"analysis": {
"normalizer": {
"custom_normalizer": {
"type": "custom","char_filter": [],"filter": [
"lowercase","asciifolding"
]
}
},"analyzer": {
"custom_analyzer": {
"tokenizer": "custom_tokenizer","filter": [
"lowercase"
]
},"autocomplete_search": {
"type": "custom","tokenizer": "keyword","filter": "lowercase"
}
},"tokenizer": {
"custom_tokenizer": {
"type": "ngram","min_gram": 1,"max_gram": 40,"token_chars": [
"letter","digit","whitespace","punctuation","symbol"
]
}
}
}
},"mappings": {
"relations": {
"properties": {
"primaryTerm": {
"type": "text","analyzer": "custom_analyzer","search_analyzer": "autocomplete_search","fielddata": "true","fields": {
"raw": {
"type": "keyword","normalizer": "custom_normalizer"
}
}
},"entityType": {
"type": "keyword","normalizer": "custom_normalizer"
},"variants": {
"type": "text","normalizer": "custom_normalizer"
}
}
}
}
}
}
}
搜索查询:
String query="{"bool": { "should": [ {"query_string": {"query":"advocate","fields": ["primaryTerm" ]}},{"query_string": {"query":"advocate","fields": ["primaryTerm.raw^2" ] } } ]}}";
弹性结果:
{"total":1,"successful":1,"skipped":0,"failed":0},"hits":{"total":12,"max_score":6.094379,"hits":[{"_index":"agencyvars","_type":"relations","_id":"qCeqHHgBcFeeTWhjAoua","_score":6.094379,"_source":{"entityType":"Agency","primaryTerm":"ACT ADVOCATES","variants":[]}},{"_index":"agencyvars","_id":"OyeqHHgBcFeeTWhjJYxu","_score":5.6339674,"primaryTerm":"TALWAR ADVOCATES","variants":["TALWAR & ADVOCATES"]}},"_id":"BSeqHHgBcFeeTWhjGIyJ","_score":5.1183944,"primaryTerm":"ZEUSIP ADVOCATES LLP","variants":["ZEUS IP,ADVOCATES","ZEUSIP ADVOCATES","ZEUS IP ADVOCATES","ZEUS IP","ZEUSIPADVOCATES LLP","ZIUSIP ADVOCATES"]}},"_id":"3CeqHHgBcFeeTWhjTYyZ","_score":4.6892724,"primaryTerm":"MURTI & MURTI ADVOCATES","_id":"0SeqHHgBcFeeTWhjjI18","_score":4.4118576,"primaryTerm":"ANAND AND ANAND ADVOCATES","variants":["AANAND & ANAND ADVOCATES","NAND AND ANAND ADVOCATES","ANAND & ANAND,"ANAND & ANAND ADVOCATES","ANAND & ANAND","ANAND&ANAND","ANAND AND ANAND ADVOCAETES","ANAND AND ANAND ADVOCATE","ANAND AND ANANDADVOCATES","AND ANAND ADVOCATES","ANAND & ANAND ADVOCATES.","ANAND AND ANAN","ANAND AND ANAND","ANAND AND ANAND ADVOCATES,","ANAND AND ANAND ADVOCATES.","ANAND AND ANAND,"ANAND AND"]}},"_id":"2CeqHHgBcFeeTWhjTIyn","_score":3.2560868,"primaryTerm":"STAR IP Advocates and IPR Attorneys","variants":["STARIP,ADVOCATES & IP ATTORNEYS"]}},"_id":"3yeqHHgBcFeeTWhjD4uW","_score":2.521993,"primaryTerm":"ADVOCATE AND PATENTS & TRADE MARKS ATTORNEY","variants":[]}}]}}#######3
简而言之,分数是:
score":5.6339674,"_source":{"primaryTerm":"TALWAR ADVOCATES"}
_score":5.1183944,"_source":{"primaryTerm":"INTELLEXIP ADVOCATES}
score":2.521993,"_source":{"primaryTerm":"ADVOCATE AND PATENTS & TRADEMARKS ATTORNEY}
PS:对答案的小解释将不胜感激,因为我是弹性的新手
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)