zoukankan      html  css  js  c++  java
  • elasticsearch dis_max query

    课程大纲
    
    1、搜索title或content中包含java beginner的帖子
    
    GET /forum/article/_search
    {
        "query": {
            "dis_max": {
                "queries": [
                    { "match": { "title": "java beginner" }},
                    { "match": { "content":  "java beginner" }}
                ]
            }
        }
    }
    
    有些场景不是太好复现的,因为是这样,你需要尝试去构造不同的文本,然后去构造一些搜索出来,去达到你要的一个效果
    
    可能在实际场景中出现的一个情况是这样的:
    
    (1)某个帖子,doc1,title中包含java,content不包含java beginner任何一个关键词
    (2)某个帖子,doc2,content中包含beginner,title中不包含任何一个关键词
    (3)某个帖子,doc3,title中包含java,content中包含beginner
    (4)最终搜索,可能出来的结果是,doc1和doc2排在doc3的前面,而不是我们期望的doc3排在最前面
    
    dis_max,只是取分数最高的那个query的分数而已。
    
    2、dis_max只取某一个query最大的分数,完全不考虑其他query的分数
    
    3、使用tie_breaker将其他query的分数也考虑进去
    
    tie_breaker参数的意义,在于说,将其他query的分数,乘以tie_breaker,然后综合与最高分数的那个query的分数,综合在一起进行计算
    除了取最高分以外,还会考虑其他的query的分数
    tie_breaker的值,在0~1之间,是个小数,就ok
    
    GET /forum/article/_search
    {
        "query": {
            "dis_max": {
                "queries": [
                    { "match": { "title": "java beginner" }},
                    { "match": { "content":  "java beginner" }}
                ],
                "tie_breaker": 0.3
            }
        }
    }
  • 相关阅读:
    C# 文件类的操作---删除
    C#实现Zip压缩解压实例
    UVALIVE 2431 Binary Stirling Numbers
    UVA 10570 meeting with aliens
    UVA 306 Cipher
    UVA 10994 Simple Addition
    UVA 696 How Many Knights
    UVA 10205 Stack 'em Up
    UVA 11125 Arrange Some Marbles
    UVA 10912 Simple Minded Hashing
  • 原文地址:https://www.cnblogs.com/wangchuanfu/p/14149645.html
Copyright © 2011-2022 走看看