zoukankan      html  css  js  c++  java
  • 读《深入理解Elasticsearch》点滴-multi_match

    区分按字段为中心的查询、词条为中心的查询

     注意高频词项高得分词项(冷僻的词项)取代的问题

    1、best_fields :适用于多字段查询且查询相同文本;得分取其中一个字段的最高分。可通过tie_breaker(取值0~1)将低得分字段的分数引入的最终得分中。best_fields可与dis_max查询互换。ES内部转换为dis_max查询

    operator(此查询中慎用)、minimum_should_match 作用于每个字段的子查询内部中

    例如:

    "query":"complete conan doyle"

    "field":["title","author","characters"]

    "type":"best_fields"

    "operator":"and"

    等价于:

    (+title:complete +title:conan +title:doyle) | (+autorh:complete +author:conan +autore:doyle) | (+characters:complete +characters:conan +characters:doyle)

    2、corss_fields:适用于期望查询文本中所有的词都在文档中出现,而又不介意在文档中哪些字段中出现。operator作用于子查询与子查询之间的连接

    应用场景:信息被索引时分割到不同字段中,如住址,姓、名。多数情况下opertaotr使用and

    上述查询等价于:

    +(title:complete author:complete charactors:complete) +(title:conan author:conan charators:conan) +(title:doyle author:doyle charactor:doyle)

    3、most_fields:适用于检索多处包含相同文本,但是恩本分析处理方式不同的文档。多数情况下operator使用or

    ES内部转化为bool查询

    应用场景:多语言处理

    ..。。

    4、phrase:内部转换为dis_max,同best_fields

    5、parase_prefix:内部转换为dis_max,同best_fields

  • 相关阅读:
    完整的CRUD——javaweb
    JDBC预编译语句表名占位异常
    自定义标签2.x
    实现一个自定义<table>标签
    带动态属性的自定义标签
    自定义标签库_tag
    poj 3783
    The North American Invitational Programming Contest 2018 E. Prefix Free Code
    hdu 6383
    ACM-ICPC 2016 Qingdao Preliminary Contest G. Sort
  • 原文地址:https://www.cnblogs.com/jiangtao1218/p/8594881.html
Copyright © 2011-2022 走看看