我根据ES 5.4搜索我的搜索引擎的解决方案。 当我的用户写了一个请求时,我需要一个更好的得分,如果我的一个结果以相同的单词开头。
我的客户在我的搜索栏中写“disque de frein”时,所有的第一批结果都是
“disque de frein pour golf”
“disque de frein pour porsche”
“disque de frein pour audi”
然后
“保护de disque de frein”
但是现在,最后的结果得分比其他结果更好。
顺便说一句,我使用的是FOSElasticaBundle,但我只需知道如何获得良好的效果。
有我的疑问:
{
"query":{
"bool":{
"should":[
{
"match":{
"produitLibFr":{
"query":"disque de frein"
}
}
}]
}
}
}
results :
{
"_index": "app",
"_type": "produit",
"_id": "41666191",
"_score": 10.558487,
"_source": {
"produitRef": "FA42436",
"produitLibFr": "Pied à coulisse pour disques de frein",
"produitLibEs": "",
"produitLibGb": "",
"produitLibNl": "",
"produitLibPt": ""
}
},
{
"_index": "app",
"_type": "produit",
"_id": "41666369",
"_score": 10.5379715,
"_source": {
"produitRef": "FA43075",
"produitLibFr": "Module freins à disques",
"produitLibEs": "",
"produitLibGb": "",
"produitLibNl": "",
"produitLibPt": ""
}
},
{
"_index": "app",
"_type": "produit",
"_id": "67938479",
"_score": 9.800581,
"_source": {
"produitRef": "GH28306",
"produitLibFr": "Disque de frein arrière pour Scirocco & Corrado",
"produitLibEs": "1 Disco de freno trasero para Scirocco & Corrado",
"produitLibGb": "1 Rear brake disc for Scirocco & Corrado",
"produitLibNl": "1 remschijf voor de achterrem voor Scirocco & Corrado",
"produitLibPt": ""
}
}
我希望最后一个位于第一位......
你有什么线索吗?
谢谢!
我尝试@Lupanoide解决方案,我得到了这些结果:
Appareil de mesure pour disques de frein
- 30.441166
Accessoires pour mesurer les disques de frein
- 30.441166
Appareil de mesure pour disques de frein
- 30.204206
Accessoires pour mesurer les disques de frein
- 29.945782
Protecteur de disque de frein arrière droit
- 28.547125
然后好的一个:
Disque de frein arrière pour Scirocco & Corrado
- 28.547125
分数增加但仍存在同样的问题。
并且提升参数很有意思但我们只能对一个字段产生负面影响,我需要积极推动match_phrase_prefix
字段
答案 0 :(得分:0)
尝试:
{
"query": {
"bool": {
"must": [
{
"match": {
"produitLibFr": {
"query": "disque de frein"
}
}
}
],
"should": [
{
"match_phrase_prefix": {
"produitLibFr": "disque de frein"
}
}
]
}
}
}
此查询匹配两种情况:
"produitLibFr"
字段"produitLibFr"
字段内容的开头。 如果文档匹配,则两个条款的评分都会更高。要提高分数值,您可以考虑使用boost
参数 - doc here