第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定

分布式搜索引擎ElasticSearch之高級運用(四)

標(biāo)簽:
Java 架構(gòu)

一、如何优化多字段查询

1. 提升字段查询得分:

将title字段查询比重提升10倍:

GET /movies/_search
{
  "explain": true, 
  "query":{
    "multi_match":{
      "query": "good hearts sea",
      "fields": ["title^10", "overview"]
    }
  }
}

得分系数提升了10倍:
file

2. 综合提升字段查询得分:

使用tie_breaker将其他query的分数也考虑进去

GET /movies/_search
{
  "query":{
    "multi_match":{
      "query": "good hearts sea",
      "fields": ["title", "overview"],
      "tie_breaker": 0.3
    }
  }
}

使用 tie_breaker 和不使用查询出来的某一条数据的 _score 分数,会有相应的提高,例如:

> title 中包含关键词matched query 的得分,假设是 1.6
>
> overview中包含关键词matched query的得分,假设是 1.8

添加了 tie_breaker = 0.3,那么就是这样的了, 1.6 * 0.3 + 1.8 = 2.28;

大于最高一条的得分1.8,这样搜索的关联性就提升上去了, 更为合理。

二、多条件查询与过滤

1. 多条件查询:

GET /movie/_search
{
  "query":{
    "bool":{
      "filter":[
        {"term":{"title":"heart"}},
        {"term":{"cast.name":"joseph"}},
        {"range": { "release_date": { "lte": "2016/01/01" }}},
        {"range": { "popularity": { "gte": "25" }}}
        ]
    }
  }
}

2. 增加排序处理:

GET /movie/_search
{
  "query":{
    "bool":{
      "filter":[
        {"term":{"title":"heart"}},
        {"range": { "release_date": { "lte": "2017/01/01" }}},
        {"range": { "popularity": { "gte": "10" }}}
        ]
    }
  },
  "sort":[
    {"release_date":{"order":"desc"}}
  ]
}

根据release_date进行倒序排列。

三、查全率与查准率

1. 什么是查全率:

索引内符合条件的结果有N个,查询出来的符合条件的结果有X个, 则查全率为: X/N

比如: 用户的关键词为笔记本(笔记本包含写字的笔记本以及电脑笔记本, 在索引中, 这些记录为1000条,即N),查询出来的结果如果是100条,即X(包含写字的笔记本以及电脑笔记本), 则查全率为10%。

2. 什么是查准率:

查询出来的X个文档中, 有M个是正确的, 则查准率为:M/X

比如: 用户的关键词为笔记本, 这些记录为1000条,查询出来的结果如果是100条, 而在这100条(X)当中只有20条(M)为用户期望的电脑笔记本, 则查准率为20%。

3. 自定义调整评分:

通过function_score实现自定义评分:

GET /movies/_search
{
  "explain": true, 
  "query":{
    "function_score": {
      "query": {      
        "multi_match":{
          "query": "good hearts sea",
          "fields": ["title", "overview"]
        }
      },
      "functions": [
        {"field_value_factor": {
          "field": "popularity",
          "modifier": "log2p",
          "factor": 20
        }}
      ]      
    }
  }
}

通过function_score将popularity评分调整, 采用log对数函数, 将系数放大20, 通过explain查看具体得分。

file

value得分为3.00

file

再乘以12.261267, 得出最终得分结果为36.875378。


點擊查看更多內(nèi)容
TA 點贊

若覺得本文不錯,就分享一下吧!

評論

作者其他優(yōu)質(zhì)文章

正在加載中
  • 推薦
  • 評論
  • 收藏
  • 共同學(xué)習(xí),寫下你的評論
感謝您的支持,我會繼續(xù)努力的~
掃碼打賞,你說多少就多少
贊賞金額會直接到老師賬戶
支付方式
打開微信掃一掃,即可進(jìn)行掃碼打賞哦
今天注冊有機會得

100積分直接送

付費專欄免費學(xué)

大額優(yōu)惠券免費領(lǐng)

立即參與 放棄機會
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號

舉報

0/150
提交
取消