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
            }
        }
    }
  • 相关阅读:
    PHP根据蜘蛛和设备进行适配不同界面
    destoon7.0招商地区聚合推送
    Destoon7.0产品栏目地区聚合推送插件
    Destoon7.0百度批量循环推送至百度
    PHP 实现随机图像功能
    PHP中$_SERVER参数用法总结
    关于destoon后台添加自定义功能+前台展示标签调用方法
    分类地区批量推送熊掌号+主动推送代码
    SpringMVC-SimpleDEMO
    SpringMVC工作流程
  • 原文地址:https://www.cnblogs.com/wangchuanfu/p/14149645.html
Copyright © 2011-2022 走看看