elasticsearch Elasticsearch查询最短匹配,elasticsearch,elasticsearch" /> elasticsearch Elasticsearch查询最短匹配,elasticsearch,elasticsearch" />

elasticsearch Elasticsearch查询最短匹配

elasticsearch Elasticsearch查询最短匹配,elasticsearch,elasticsearch,我在elasticsearch中搜索AB 结果:ABB在ABscore前面ABB>AB 我要AB>ABB { 'sort': [{'_score': {'order': 'desc'}}], 'from': _from, 'size': page_size, 'query': { "multi_match": { "query": key, "type": "best_fields",

我在elasticsearch中搜索AB

结果:ABB在ABscore前面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

如果ABB在你的语料库中比AB更少见,那么ABB的分数会更好,因为默认的分数使用TF/IDF公式

如果要根据字段长度增加字段的查询时间,首先需要使用painless和管道将字段长度存储在另一个字段中,或者在为数据编制索引之前。然后,您可以使用带有log2p修饰符的函数\u score\u查询来计算字段长度

哪个字段包含AB和ABB值。执行name字段的这两个值,或者一个是name,另一个是intro。请共享包含这些值的映射和文档。只有这样才能确定为什么ABB的得分更高,因为有一个领域,即名称比介绍更高