1
我试图用通配符和_all搜索文档。但是似乎没有可能在_all上使用通配符获得提升结果?Elasticsearch增强与Wildcardsearch在_all
MappingRequest:
"theboostingclass": {
"properties": {
"Important": {
"boost": 2.0,
"type": "string"
},
"LessImportant": {
"type": "string"
},
"Garbage": {
"type": "string"
}
}
}
}
索引:
{
"index" :
{
"_index":"boosting",
"_type":"theboostingclass"
}
}
{
"Important":"bomb",
"LessImportant":"kruka",
"Garbage":"kalkon"
}
{
"index" :
{
"_index":"boosting",
"_type":"theboostingclass"
}
}
{
"Important":"kalkon",
"LessImportant":"bomb",
"Garbage":"bomber"
}
{
"index" :
{
"_index":"boosting",
"_type":"theboostingclass"
}
}
{
"Important":"kruka",
"LessImportant":"bomber",
"Garbage":"bomb"
}
查询
"query": {
"wildcard": {
"_all": {
"value": "*bomb*"
}
}
}
结果returs全部命中以1分和一个看似随机的顺序。这并不是什么后来的。我希望在“重要”字段中获得更高的分数。
如果我对所有3个字段进行通配符搜索,得分似乎是正确的。但是我想在_all上使用它。有任何想法吗?
哇谢谢。至少现在我得分了。不幸的是,我不能让他得分更高的“重要”领域。我希望在单场比赛中得分高于其他场上的命中。 (我试图提高它,并降低其他)我一定错过了什么..? 编辑:我试图添加两个新项目。一个具有重要的精确匹配字段,另一个具有垃圾上完全匹配的字段。这两个“炸弹”。重要领域的成绩比其他成绩低,即使其成绩稍逊一筹。这怎么可能? – Evelie
我在猜测,但它看起来有两个匹配的其他两个,第一个只有一个。 “轰炸机”也是一场比赛。完全匹配在这个查询中完全不重要。如果你想提高精确匹配,你将不得不增加另一个参数到你的查询。 –
是的,它看起来像。但这正是我试图用提升来解决的问题。因此,即使有两场比赛,我想在“重要”栏目上的比赛得分更高。 – Evelie