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

Elasticsearch:Combined fields 查詢

這篇具有很好參考價值的文章主要介紹了Elasticsearch:Combined fields 查詢。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

有時一個匹配項可以覆蓋多個文本字段。 在這種情況下,你可以使用 combined_fields 查詢來搜索多個文本字段,就好像它們的值實際上已被索引到一個組合字段中一樣。 除此之外,combined_fields 的主要好處是強大且易于理解的評分算法。這種做法也有類似于 copy_to??????? 的處理方法。

combined_fields 查詢屬于全文查詢組,它允許你搜索已分析的文本字段(例如,錯誤消息)。

當(dāng)字段映射中沒有指定 search_analyzer 時,分析器將默認(rèn)為索引時應(yīng)用于該字段的分析器,并使用該分析器來處理查詢字符串。 如果在字段映射中指定了 search_analyzer,則此分析器將是用于處理查詢字符串的分析器。

分析器只是一個由三個更小的組件構(gòu)建而成的組件:字符過濾器、標(biāo)記器和標(biāo)記過濾器,無論是內(nèi)置的還是自定義的。 這些構(gòu)建塊被內(nèi)置的分析器預(yù)先打包到各種語言和各種文本的分析器中。 Elasticsearch 還公開了各個構(gòu)建塊,允許將它們合并以創(chuàng)建新的自定義分析器。 你可以在此處閱讀有關(guān)分析器的更多信息。

combined fields 查詢支持搜索多個文本字段,就好像它們的內(nèi)容已被索引到一個組合字段中一樣。 該查詢采用把輸入字符串當(dāng)做以 term 為中心的輸入:首先它將查詢字符串分析為單獨的 term,然后在任何字段中查找每個詞。 當(dāng)匹配可能跨越多個文本字段(例如文章的 title、abstract 和 body)時,此查詢特別有用。比如我們寫入如下的一個文檔:

PUT combined_index/_doc/1
{
  "title": "Elasticsearch database is very useful",
  "abstract": "This is a very popular system nowadays",
  "body": "Elasticsearch is today one of the most popular database systems available today. This Elasticsearch tutorial provides new users with the prerequisite knowledge and tools to start using Elasticsearch. It includes installation instructions, and initial indexing and data handling instructions."
}

我們可以使用如下的搜索來針對 tille, abstract 及 body 同時進行查詢:

GET combined_index/_search?filter_path=**.hits
{
  "query": {
    "combined_fields": {
      "query": "database systems",
      "fields": ["title", "abstract", "body"],
      "operator": "and"
    }
  }
}

上面命令搜索返回的結(jié)果為:

{
  "hits": {
    "hits": [
      {
        "_index": "combined_index",
        "_id": "1",
        "_score": 0.6877647,
        "_ignored": [
          "body.keyword"
        ],
        "_source": {
          "title": "Elasticsearch database is very useful",
          "abstract": "This is a very popular system nowadays",
          "body": "Elasticsearch is today one of the most popular database systems available today. This Elasticsearch tutorial provides new users with the prerequisite knowledge and tools to start using Elasticsearch. It includes installation instructions, and initial indexing and data handling instructions."
        }
      }
    ]
  }
}

乍一看,是不是有點覺得像 mulit-match 查詢的樣子啊?這在我們下面來進行比較。

combined_fields 查詢采用基于概率相關(guān)性框架:BM25 及以后中描述的簡單 BM25F 公式的原則性評分方法。 在對匹配項進行評分時,查詢會跨字段組合術(shù)語和集合統(tǒng)計信息來對每個匹配項進行評分,就好像指定字段已被索引到單個組合字段中一樣。 這個得分是最好的嘗試; combined_fields 做了一些近似,分?jǐn)?shù)不會完全服從 BM25F 模型。

警告:字段數(shù)量限制。默認(rèn)情況下,查詢可以包含的子句數(shù)量是有限制的。 此限制由 indices.query.bool.max_clause_count 設(shè)置定義,默認(rèn)為 4096。對于combined fileds 查詢,子句數(shù)計算為字段數(shù)乘以術(shù)語數(shù)。

這個查詢有什么用?

combined_fields 查詢使你能夠搜索多個文本字段,就好像它們的索引值已被索引到一個組合字段中一樣。 combined_fields 查詢在匹配可能涵蓋多個文本字段時很方便。

combined_fields 查詢通過采用以 term 為中心的查詢視圖來工作。 它將查詢字符串分析為單個術(shù)語,然后在任何字段中搜索每個術(shù)語。 可以使用此查詢代替跨字段 multi_match 查詢。 它提供了更直接的行為和更強大的評分系統(tǒng)。 combined_fields 查詢僅適用于具有完全相同的搜索分析器的字段,而 multi_match 查詢不關(guān)心字段是否具有相同的搜索分析器。

字段分?jǐn)?shù)加權(quán)

字段分?jǐn)?shù)加權(quán)是 combined fields 模型而定的。 例如,如果標(biāo)題 title 的提升為 2,則計算分?jǐn)?shù)時就好像 title 中的每個術(shù)語在合成組合字段中出現(xiàn)了兩次一樣。

GET /_search
{
  "query": {
    "combined_fields" : {
      "query" : "distributed consensus",
      "fields" : [ "title^2", "body" ] 
    }
  }
}

如上所示,當(dāng)我們想對 title 字段進行加權(quán)時,我們可以使用 ^ 符號來進行表述。

注意:combined_fields 查詢要求字段提升大于或等于 1.0。 字段增強允許是浮點數(shù),比如 2.2 等。

combined_fields 的參數(shù)


fields

???????(必需,字符串?dāng)?shù)組)要搜索的字段列表。 允許字段通配符模式。 僅支持文本字段,并且它們必須都具有相同的搜索分析器。

query
????????(必需,字符串)要在提供的 <fields> 中搜索的文本。

????????combined_fields 查詢在執(zhí)行搜索之前分析提供的文本。

auto_generate_synonyms_phrase_query
????????(可選,布爾值)如果為真,則會自動為 multi-term 同義詞創(chuàng)建 match phrase 查詢。默認(rèn)為 true。

????????有關(guān)系的例子,請參看 Use synonyms with match query。

Operator

????????(可選,字符串)布爾邏輯,用于解釋查詢值中的文本。 有效值為:

? ? ? ? ????????or(默認(rèn))
????????????????????????例如,database systems 的查詢值被解釋為 database OR systems
? ? ? ? ????????and
????????????????????????例如,database systems 的查詢值被解釋為 database AND systems

minimum_should_match
????????(可選,字符串)要返回的文檔必須匹配的最小子句數(shù)。 有關(guān)有效值和更多信息,請參閱 minimum_should_match?參數(shù)。

zero_terms_query

????????(可選,字符串)指示如果分析器刪除所有分詞時是否不返回任何文檔,例如在使用 stop 過濾器時。 有效值為:

? ? ? ? ? none(默認(rèn))
????????????????如果分析器刪除所有分詞,則不會返回任何文檔。
? ? ? ? ?all
????????????????返回所有文檔,類似于 match_all 查詢。
????????????????有關(guān)示例,請參見?Zero terms query?。

和 multi-match 查詢比較

combined_fields 查詢提供了一種跨多個文本字段進行匹配和評分的原則性方法。 為了支持這一點,它要求所有字段都具有相同的搜索分析器。

如你想要一個處理不同類型字段(如 keyword 或 numbers)的查詢,那么 multi_match 查詢可能更合適。 它支持文本和非文本字段,并接受不共享同一分析器的文本字段。

主要的 multi_match 模式 best_fields 和 most_fields?采用以字段為中心的查詢視圖。 相比之下,combined_fields 是以 term 為中心的:operator 和 minimum_should_match 應(yīng)用于每個 term,而不是每個字段。 具體來說,像這樣的查詢:

GET /_search
{
  "query": {
    "combined_fields" : {
      "query":      "database systems",
      "fields":     [ "title", "abstract"],
      "operator":   "and"
    }
  }
}

被執(zhí)行為:

+(combined("database", fields:["title" "abstract"]))
+(combined("systems", fields:["title", "abstract"]))

換句話說,每個術(shù)語必須出現(xiàn)在至少一個字段中才能匹配文檔。

cross_fields multi_match 模式也采用以術(shù)語為中心的方法,并為每個術(shù)語應(yīng)用 operator 和 minimum_should_match。 combined_fields 相對于 cross_fields 的主要優(yōu)勢是其基于 BM25F 算法的強大且可解釋的評分方法。

注意:Custom similarities
combined_fields 查詢目前只支持 BM25 相似度,這是默認(rèn)的,除非配置了 Custom similarities。 Per-field similarities?也是不允許的。 在任何一種情況下使用 combined_fields 都會導(dǎo)致錯誤。文章來源地址http://www.zghlxwxcb.cn/news/detail-418599.html

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

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

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

相關(guān)文章

  • Elasticsearch(十一)搜索---搜索匹配功能②--range查詢和exists查詢

    Elasticsearch(十一)搜索---搜索匹配功能②--range查詢和exists查詢

    繼上一節(jié)學(xué)習(xí)了ES的搜索的查詢?nèi)亢蛅erm搜索后,此節(jié)將把搜索匹配功能剩余的2個學(xué)習(xí)完,分別是range搜索和exists搜索 range查詢用于范圍查詢,一般是對數(shù)值型和日期型數(shù)據(jù)的查詢。使用range進行范圍查詢時,用戶可以按照需求中是否包含邊界數(shù)值進行選項設(shè)置,可供組合的

    2024年02月09日
    瀏覽(23)
  • Elasticsearch從入門到精通-05ES匹配查詢

    Elasticsearch從入門到精通-05ES匹配查詢

    ??作者簡介:大家好,我是程序員行走的魚 ?? 本篇主要介紹和大家一塊學(xué)習(xí)一下ES各種場景下的匹配查詢,有助于我們在項目中進行綜合使用 創(chuàng)建索引并指定ik分詞器: 添加數(shù)據(jù): 需要搜索的document中的remark字段包含java和developer詞組 上述語法中,如果將operator的值改為or。則與

    2024年03月27日
    瀏覽(30)
  • Elasticsearch(十)搜索---搜索匹配功能①--查詢所有文檔和term級別查詢

    Elasticsearch(十)搜索---搜索匹配功能①--查詢所有文檔和term級別查詢

    之前的學(xué)習(xí)我們已經(jīng)了解了搜索的輔助功能,從這一章開始就是ES真正核心的功能,搜索。針對不同的數(shù)據(jù)類型,ES提供了很多搜索匹配功能:既有進行完全匹配的term搜索,也有按照范圍匹配的range搜索;既有進行分詞匹配的match搜索,也有按照前綴匹配的suggesr搜索。我們同樣

    2024年02月11日
    瀏覽(26)
  • Elasticsearch(十三)搜索---搜索匹配功能④--Constant Score查詢、Function Score查詢

    Elasticsearch(十三)搜索---搜索匹配功能④--Constant Score查詢、Function Score查詢

    之前我們學(xué)習(xí)了布爾查詢,知道了filter查詢只在乎查詢條件和文檔的匹配程度,但不會根據(jù)匹配程度對文檔進行打分,而對于must、should這兩個布爾查詢會對文檔進行打分,那如果我想在查詢的時候同時不去在乎文檔的打分(對搜索結(jié)果的排序),只想過濾文本字段是否包含這

    2024年02月11日
    瀏覽(24)
  • Elasticsearch 查詢革新:探索 Wildcard 類型的高效模糊匹配策略

    Elasticsearch 查詢革新:探索 Wildcard 類型的高效模糊匹配策略

    在生產(chǎn)使用中,Elasticsearch 除了精確匹配的要求,也會有模糊查詢的場景。 面對這種問題 ,傳統(tǒng)的解決方案有兩種: 2.1 方案一:ngram 分詞器 使用 ngram 分詞器對存入的數(shù)據(jù)進行精細(xì)化的拆分,利用細(xì)顆粒度的 token 進行快速的召回。 這是一個利用空間換時間的方案,細(xì)化查詢

    2024年02月04日
    瀏覽(25)
  • Springboot3.1+Elasticsearch8.x匹配查詢

    Springboot3.1+Elasticsearch8.x匹配查詢

    springboot-starter3.1.0中spring-data-elasticsearch的版本為5.1.0,之前很多方法和類都找不到了。這里主要講講在5.1.0版本下如何使用spring data對elesticsearch8.x進行匹配查詢。 第一步當(dāng)然是配置依賴 在這里面,spring-boot-starter-data-elasticsearch是3.1.0的,里面的spring-data-elasticsearch是5.1.0的,服務(wù)

    2024年02月15日
    瀏覽(23)
  • elasticsearch 基于ik分詞器的分詞查詢和模糊匹配

    elasticsearch 基于ik分詞器的分詞查詢和模糊匹配

    前言:elasticsearch 查詢有很多,查詢的條件有固定格式,返回結(jié)果提示不明確,讓ES使用起來有點不方便的感覺,ES查詢方式很多,簡單介紹幾種使用點的,實用的 此處簡單梳理一下最常用的查詢 模糊匹配查詢 類似 mysql 語法中的 like ‘%value%’ 類似于百度的分詞查詢 將

    2024年02月16日
    瀏覽(17)
  • ElasticSearch系列 - SpringBoot整合ES之全文搜索匹配查詢 match

    官方文檔地址:https://www.elastic.co/guide/en/elasticsearch/reference/index.html 權(quán)威指南:https://www.elastic.co/guide/cn/elasticsearch/guide/current/structured-search.html 1. 數(shù)據(jù)準(zhǔn)備 官方測試數(shù)據(jù)下載地址:https://download.elastic.co/demos/kibana/gettingstarted/accounts.zip ,數(shù)據(jù)量很大,我們自己構(gòu)造數(shù)據(jù)吧。 2. m

    2023年04月08日
    瀏覽(33)
  • Elasticsearch 基本使用(五)查詢條件匹配方式(query & query_string)

    Elasticsearch 基本使用(五)查詢條件匹配方式(query & query_string)

    ES中常用的查詢類型往大了分可以分為簡單查詢,復(fù)合查詢,聚合查詢等; 而復(fù)合查詢及聚合查詢都是基于簡單查詢的;簡單查詢里面對條件的匹配方式又分為不同類型。term[s],match,match_all,match_phrase 等等 term 單詞查詢,在字段的倒排索引(發(fā)生分詞)或者直接在字段值(

    2024年02月09日
    瀏覽(25)
  • ElasticSearch系列 - SpringBoot整合ES:短語匹配查詢 match_phrase

    1. ElasticSearch match_phrase查詢是什么?它與match查詢有什么區(qū)別? match_phrase查詢是一種用于匹配短語的查詢方式,可以用于精確匹配多個單詞組成的短語。它會將查詢字符串分解成單詞,然后按照順序匹配文檔中的單詞,只有當(dāng)文檔中的單詞順序與查詢字符串中的單詞順序完全

    2024年02月12日
    瀏覽(18)

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

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

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

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

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包