es 多字段分词查询优化


es多字段查询时,优化字段查询权重.比如:有2个字段nameteacher 看下面查询

{
  "query": {
    "bool": {
	"should": [
           {"term":{"name":"文化"}},
           {"term":{"teacher":"文化"}}
	]
    }
  }
}

这样去查的话,nameteacher权重相同,但是如果想优先排name中包含文化的数据,使用下面查询

{
  "query": {
    "bool": {
      "should": [
        {"term":{"name":"文化"}}, 
        {"bool": {
            "should": [{"term":{"teacher":"文化"}}]
          }
        }
      ]
    }
  }
}

把对teacher的查询嵌套到对name查询的里面,那么对name计算权重就会加大.

使用minimum_should_match参数提高匹配精度
3<-15% 9<-3 : ‘3<-15%’表示如果clauses不大于3个,要求全匹配,大于三个则允许有15%不匹配


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM