我在elasticsearch中搜索“ AB”
结果:“ ABB”位于“ AB”前面(得分ABB> AB)
我想要“ AB”>“ ABB”
{
'sort': [{'_score': {'order': 'desc'}}],
'from': _from,
'size': page_size,
'query': {
"multi_match": {
"query": key,
"type": "best_fields",
"fields": ["name^5", "intro"]
}
}
}
"mappings": {
"doc": {
"properties": {
"intro": {
"type": "text",
"fields": {
"keyword": {
"ignore_above": 256,
"type": "keyword"
}
}
},
"name": {
"type": "text",
"fields": {
"keyword": {
"ignore_above": 256,
"type": "keyword"
}
}
},
"id": {
"type": "long"
},
}
}
}
我的数据是中文
例如: 名称:刘佳简介:“ xxxxxx” 名称:刘佳佳简介:“ xxxxxx”
答案 0 :(得分:1)
如果您的语料库中的ABB比AB少,那么ABB的得分会更高,因为默认评分使用TF / IDF公式。
如果要基于字段长度将字段增加查询时间,则首先需要将字段长度存储在另一个字段中(使用无痛的管道操作或在对数据进行索引之前)。然后,您将可以使用带有log2p
修饰符的function_score_query(请参阅此处field value factor function)来计算字段长度