国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

ElasticSearch的查詢權(quán)重-控制查詢相關(guān)度

這篇具有很好參考價值的文章主要介紹了ElasticSearch的查詢權(quán)重-控制查詢相關(guān)度。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

ES查詢相關(guān)度的官網(wǎng)連接

1:ElasticSearch的查詢權(quán)重

每個文檔與查詢的相關(guān)度,在全文搜索引擎中不僅需要找到匹配的文檔,還需根據(jù)它們相關(guān)度的高低進行排序。

根據(jù)全文相關(guān)的公式或 相似算法(similarity algorithms) 會將多個因素合并起來,為每個文檔生成一個相關(guān)度評分 _score 。_score 在查詢結(jié)果中有顯示

1:相關(guān)度評分理論

Lucene(或 Elasticsearch)使用 bool(bool model) 查找匹配文檔時,會用一個名為 實用評分函數(shù)的公式來計算相關(guān)度。這個公式借鑒了 詞頻/逆向文檔頻率 和 向量空間模型,同時也加入了一些現(xiàn)代的新特性,如協(xié)調(diào)因子(coordination factor),字段長度歸一化(field length normalization),以及詞或查詢語句權(quán)重提升。

1.1:bool模型

bool 查詢可以接受 must 、 must_not 和 should 參數(shù)下的多個查詢語句,就是and,or,not的意思
下面展示一些 內(nèi)聯(lián)代碼片。

{    
"bool" : {     
   "must" :     [],      
   "should" :   [],      
   "must_not" : [],   
   		} 
}

1.2:詞頻

也就是查詢值在一個字段中出現(xiàn)的次數(shù)。當然也可以禁用詞頻統(tǒng)計: “index_options”: “docs”

 "match": {
            "title": {
              "query": "quick brown fox",
               "index_options": "docs" 
}            }

1.3:字段長度歸一值

字段長度歸一值就是查詢值在結(jié)果中所占長度的比例。占的越多值越大
對于 not_analyzed 字符串字段的歸一值默認是禁用的,而對于 analyzed 字段也可以通過修改字段映射禁用歸一值:禁用"norms": { “enabled”: false }

 "match": {
            "title": {
              "query": "quick brown fox",
               "index_options": "docs" ,
               "norms": { "enabled": false } 
}            }

2:查詢時提升相關(guān)度

2.1:boost權(quán)重

我們可以用boost 參數(shù)設(shè)置不同字段配置查詢時的權(quán)重。

1:提升權(quán)重

給boost參數(shù)不同的值,比如1,5,10

 "match": {
            "title": {
              "query": "quick brown fox",
              "boost": 2             //使用boost權(quán)重設(shè)置為2,不設(shè)置的默認是1
}            }

2:對多索引提升權(quán)重

當在多個索引中搜索時,可以使用參數(shù) indices_boost 來提升整個索引的權(quán)重

get index */search{
"indices_boost": { 
    "index1": 3,
    "index2": 2
  }
  "query":{} 
}

2.2:詞頻統(tǒng)計配置

當我們不關(guān)心檢索詞頻率TF對搜索結(jié)果排序的影響時,可以使用constant_score將查詢語句query或者過濾語句filter包裝起來。我們?nèi)匀豢梢杂胋oost給與權(quán)重
當然也可以禁用詞頻統(tǒng)計: “index_options”: “docs”

{
    "query":{
        "bool":{
            "should": [
                { "constant_score": {
                	  "boost":2,
                      "query": { "match": { "description": "wifi" }} }},
                { "constant_score": {
                      "query": { "match": { "description": "garden" }} }},
                { "constant_score": {
                      "query": { "match": { "description": "pool" }} }}
              ]
        }
    }
}

2.3:查詢結(jié)果評分修改:function_score

es提供了一些函數(shù)允許我們對查詢的結(jié)果score評分進行修改,function_score 查詢將查詢query和函數(shù)function包括在內(nèi)。在搜索時,可以將 function_score 查詢與 field_value_factor 結(jié)合使用

field_value_factor :配置字段,最終的查詢的score會由function_score 查詢體的結(jié)果值通過field_value_factor配置字段的值進行協(xié)調(diào)。多用于點贊排名等數(shù)據(jù)。最終值:new_score=old_score*field_value_factor

GET /blogposts/post/_search
{
  "query": {
    "function_score": { 
      "query": {                   	//function_scored的查詢體
        "multi_match": {
          "query":    "popularity",
          "fields": [ "title", "content" ]
        }
      },
      "functions": [              	//function_score的functions函數(shù)
          {"random_score": {}},    	//functions函數(shù)的參數(shù)1:隨機評分
          {"gauss": {					//functions函數(shù)的參數(shù)2:gauss中心化展示
       		 "age": {  
          		"origin": "2",
          		"scale": "1"
        		}
     	 	}
        ],
      "field_value_factor": { 		//function_score參數(shù)1
        "field": "votes"            //該字段必須是integer等數(shù)值類型的數(shù)據(jù),常用于點贊數(shù)等字段評分  
      },
      "boost_mode": "sum",			//function_score參數(shù)2
      "max_boost":  1.5 			//function_score參數(shù)3
    }
  }
}

1:field_value_factor參數(shù)解釋
field:提取該字段的值乘以query的查詢score評分=最終結(jié)果,相等于我們給每個查詢的結(jié)果乘了值的系數(shù)
modifier :為了讓最終結(jié)果減少field值系數(shù)的影響。
missing:如果文檔沒有該字段,則使用該值
factor:對于field字段值的均衡使用后new_score = old_score * log(1 + factor * field-value)

"field_value_factor": { 
        "field": "interger field"  ,  //該字段必須是integer等數(shù)值類型的數(shù)據(jù),常用于點贊數(shù)等字段評分  
     	"modifier ":"none ", 		  //none (默認狀態(tài))、 log 、 log1p 、 log2p 、 ln 、 ln1p 、 ln2p 、 square 、 sqrt 以及 reciprocal
     	"missing": 1,
     	"factor":  1
      }

2:max_boost最大值限制

限制field_value_factor 的最大值,只會對函數(shù)的最大值有用,不會對不在函數(shù)內(nèi)的查詢構(gòu)成作用

3:隨機評分制:random_score

當_score評分結(jié)果一致時保證每次的展示結(jié)果都一致。 通過random_score設(shè)置值

 "functions": [  
		{
          "random_score": { 
            "seed":  "the users session id"  //常用用戶id等保證每個人的結(jié)果一致
          }
        }
 ]

4:查詢結(jié)果中心化:gauss

為了保證查詢結(jié)果是我們想要的,我們可以設(shè)定距離,價格等為中心查詢某一范圍的值。讓更合適的值靠近我們的展示。比如美團的展示(以價格,距離排序展示)

"functions": [
      {"gauss": {      
        "age": {        //以哪個字段的值進行計算
          "origin": "2",	//該字段的中心值
           "offset": "",  	//以origin左右偏移多少為中心 :origin±offset  該范圍內(nèi)是1.0評分
          "scale": "1"		//偏出origin±offset到scale值內(nèi)的評分默認是origin±offset評分值的一半0.5
        }
      }"weight ":2}         //該函數(shù)的權(quán)重系數(shù)
 ]

3:相似度算法

在設(shè)置索引的mapping時為字段配置屬性
“similarity”: “BM25”文章來源地址http://www.zghlxwxcb.cn/news/detail-702069.html

2:實戰(zhàn)驗證

2.1:插入數(shù)據(jù)

2.2:驗證

到了這里,關(guān)于ElasticSearch的查詢權(quán)重-控制查詢相關(guān)度的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔相關(guān)法律責任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經(jīng)查實,立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費用

相關(guān)文章

  • 原生語言操作和spring data中RestHighLevelClient操作Elasticsearch,索引,文檔的基本操作,es的高級查詢.查詢結(jié)果處理. 數(shù)據(jù)聚合.相關(guān)性系數(shù)打分

    原生語言操作和spring data中RestHighLevelClient操作Elasticsearch,索引,文檔的基本操作,es的高級查詢.查詢結(jié)果處理. 數(shù)據(jù)聚合.相關(guān)性系數(shù)打分

    ? Elasticsearch 是一個分布式、高擴展、高實時的搜索與數(shù)據(jù)分析引擎。它能很方便的使大量數(shù)據(jù)具有搜索、分析和探索的能力。充分利用Elasticsearch的水平伸縮性,能使數(shù)據(jù)在生產(chǎn)環(huán)境變得更有價值。Elasticsearch 的實現(xiàn)原理主要分為以下幾個步驟,首先用戶將數(shù)據(jù)提交到Elasti

    2024年02月05日
    瀏覽(124)
  • 「Elasticsearch 」Es復(fù)合查詢

    目錄 Bool 查詢? ?Dis_max 查詢 ?Function_score 查詢 Nested 查詢? Geospatial 查詢? 1. Geo Point 查詢 2. Geo Shape 查詢 Elasticsearch(簡稱為ES)是一個基于Lucene的分布式搜索和分析引擎,它提供了豐富的查詢語言和API,可以用于構(gòu)建高性能、可擴展的全文搜索、日志分析和數(shù)據(jù)可視化等應(yīng)用

    2024年02月13日
    瀏覽(19)
  • 【Elasticsearch】ES精確查詢和范圍查詢,ES時間字段排序?qū)嵗?,ES倒排索引介紹

    【Elasticsearch】ES精確查詢和范圍查詢,ES時間字段排序?qū)嵗?,ES倒排索引介紹

    termQuery matchQuery 模糊查詢 multiMatchQuery 多個字段模糊查詢 如果時間字段寫入時用的類型是Text,可以用“時間字段.keyword”來處理 #查詢前傳入分頁參數(shù) #分頁后拿到總記錄數(shù) 把文檔D對應(yīng)到的映射轉(zhuǎn)換為到文檔ID的映射,每個都對應(yīng)著一系列的文檔,這些文

    2024年02月15日
    瀏覽(126)
  • 【ElasticSearch筆記】ES基本查詢

    【ElasticSearch筆記】ES基本查詢

    目錄 一、簡介 ES與關(guān)系型數(shù)據(jù)庫對比 文本分析 倒排索引 二、基本查詢 空查詢 相關(guān)性 查詢與過濾 1. 查詢與\\\"first blog\\\"字段最佳匹配的文檔 2. 搜索博客等級(level)大于等于2, 同時發(fā)布日期(post_date)是2018-11-11的博客 結(jié)構(gòu)化搜索 1. 精確值查找(term) 2. 多個精確值查找(terms) 3

    2024年01月21日
    瀏覽(49)
  • ES es Elasticsearch 十三 Java api 實現(xiàn)搜索 分頁查詢 復(fù)雜查詢 過濾查詢 ids查詢 等

    目錄 Java api 實現(xiàn)搜索 Pom.xml 建立鏈接 搜索全部記錄 增加規(guī)則值查某些字段 搜索分頁 全代碼 Ids 搜索 搜索Match搜索 multi_match 搜索 多字段搜索 復(fù)雜查詢 bool查詢 filter? bool 復(fù)雜查詢增加過濾器查詢 復(fù)雜擦好像加排序 日志 思路 參考 api 寫法 寫Java代碼 請求條件構(gòu)建層次

    2024年02月04日
    瀏覽(25)
  • 【elasticsearch】ES去重查詢實現(xiàn)

    去重實現(xiàn)原理: 采用es 的Collapse折疊+cardinality基數(shù)計算 實現(xiàn)去重 1、優(yōu)點:簡單快速效率高,幾乎無性能損耗(相比于分桶去重) 2、缺點: 1)Collapse折疊只支持一個字段去重,且字段必須是 keyword 2)cardinality基數(shù)計算去重后數(shù)量 (采用hyperloglog實現(xiàn),hyperloglog一種近似計算)

    2024年02月06日
    瀏覽(17)
  • ES-ElasticSearch查詢命令

    根據(jù)條件查詢符合標準的doc文檔,需要使用更進階的查詢方式,在ES中一般采用請求體格式通過**_search**來進行查詢,query子句主要用于編寫查詢條件,類似SQL中的where語句。 通過 match 實現(xiàn)全文搜索,如果 fieldname 字段的數(shù)據(jù)類型是 text類型 ,搜索 querytext 會進行 分詞處

    2024年02月11日
    瀏覽(23)
  • elasticsearch(es)高級查詢api

    在以上示例代碼中,定義了一個返回類型為ResponseEntityMapString, Object的/search POST映射方法,并使用MapString, Object對象來存儲異步操作的結(jié)果。然后,創(chuàng)建了一個ActionListener的匿名實現(xiàn)對象,并使用client.searchAsync()方法以異步方式執(zhí)行搜索操作。在onResponse()方法中,將搜索結(jié)果存儲

    2023年04月09日
    瀏覽(27)
  • 【ES】Elasticsearch 常見的簡單查詢

    【ES】Elasticsearch 常見的簡單查詢

    查看es中有哪些索引 請求方式:GET 請求地址: http://localhost:9200 /_cat/indices?v 參數(shù):無 結(jié)果: 查看索引全部數(shù)據(jù) 請求方式:GET 請求地址:http://localhost:9200/index-2023-08/_search 參數(shù): 結(jié)果: ?查詢多1個數(shù)據(jù) 請求方式:GET 請求地址:http://localhost:9200/index-2023-08/_search 解釋:http:

    2024年02月07日
    瀏覽(27)
  • 推出 Elasticsearch 查詢語言 (ES|QL)

    推出 Elasticsearch 查詢語言 (ES|QL)

    作者:Costin Leau 我很高興地宣布,經(jīng)過大約一年的開發(fā),Elasticsearch 查詢語言 (ES|QL) 已準備好與世界共享,并已登陸 Elasticsearch 存儲庫。 ES|QL 是 Elasticsearch? 原生的強大聲明性語言,專為可組合性、表現(xiàn)力和速度而設(shè)計。 Elasticsearch 支持多種語言,從古老的 queryDSL 到 EQL、KQ

    2024年02月13日
    瀏覽(22)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包