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

解碼 Elasticsearch 查詢 DSL:利用 Elasticsearch 中的 has_child 和 has_parent 查詢進(jìn)行父子文檔搜索

這篇具有很好參考價值的文章主要介紹了解碼 Elasticsearch 查詢 DSL:利用 Elasticsearch 中的 has_child 和 has_parent 查詢進(jìn)行父子文檔搜索。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點(diǎn)擊"舉報違法"按鈕提交疑問。

今天,讓我們深入研究 has_child 查詢和 has_parent 查詢,這將幫助我們將 2 個不同的文檔組合到一個索引中,從而使我們能夠?qū)⑺鼈兣c關(guān)系關(guān)聯(lián)起來。 這樣做會對我們搜索相關(guān)文檔時有很大幫助。 在使用 has_child 及 has_parent 這種關(guān)系時,我們必須使用 join 數(shù)據(jù)類型。更多有關(guān) join 數(shù)據(jù)類型的介紹,請參考文章 “Elasticsearch: Join 數(shù)據(jù)類型”。在實(shí)際的使用時,我們必須注意的一點(diǎn)是:?join 不能跨索引,Elasticsearch 的重點(diǎn)在于速度,而傳統(tǒng) join 的運(yùn)行速度太慢。 因此,子文檔和父文檔都必須位于相同的索引和相同的分片中。

解碼 Elasticsearch 查詢 DSL:利用 Elasticsearch 中的 has_child 和 has_parent 查詢進(jìn)行父子文檔搜索,Elasticsearch,Elastic,elasticsearch,大數(shù)據(jù),搜索引擎,全文檢索,數(shù)據(jù)庫

了解親子關(guān)系

Elasticsearch 中的父子關(guān)系涉及將一個索引中的文檔作為父項(xiàng)與另一索引中的文檔相關(guān)聯(lián)。 這種關(guān)系對于數(shù)據(jù)組織需要分層結(jié)構(gòu)、需要分層搜索的場景非常重要。 has_child 和 has_parent 查詢?yōu)槲覀兲峁┝嗽谶@些關(guān)系中輕松準(zhǔn)確地導(dǎo)航和搜索的選項(xiàng)。

has_child 查詢

has_child 查詢允許我們根據(jù)關(guān)聯(lián)子文檔的內(nèi)容搜索父文檔。 當(dāng)我們想根據(jù)孩子的屬性對父母進(jìn)行過濾或評分時,此查詢主要有用。

句法

{
  "query": {
    "has_child": {
      "type": "child_type",
      "query": {
        "match": {
          "field": "value"
        }
      }
    }
  }
}

讓我們考慮一下,我們的 “fruits” 索引中有父子關(guān)系,其中每個 fruit 文檔都是父文檔,這些水果的 nutritional_info?信息存儲為子文檔。 has_child 查詢可用于查找具有特定營養(yǎng)價值的水果。

{
  "query": {
    "has_child": {
      "type": "nutritional_info",
      "query": {
        "range": {
          "vitamin_c": {
            "gte": 20
          }
        }
      }
    }
  }
}
{
  "query": {
    "has_child": {
      "type": "nutritional_info",
      "query": {
        "range": {
          "vitamin_c": {
            "gte": 20
          }
        }
      }
    }
  }
}

在此示例中,我們正在搜索具有子文檔(營養(yǎng)信息)的水果,其中維生素 C 含量大于或等于 20。

{
  "query": {
    "has_parent": {
      "parent_type": "parent_type",
      "query": {
        "term": {
          "field": "value"
        }
      }
    }
  }
}

在與我們上面使用的具有父子關(guān)系的 “Fruits” 索引相同的示例中,我們假設(shè)每個水果文檔都是父文檔,并且營養(yǎng)信息存儲為子文檔。 has_child 查詢可用于查找具有特定營養(yǎng)價值的水果。 這是一個例子:

{
  "query": {
    "has_child": {
      "type": "nutritional_info",
      "query": {
        "range": {
          "vitamin_c": {
            "gte": 20
          }
        }
      }
    }
  }
}

在此示例中,我們正在搜索具有子文檔(營養(yǎng)信息)的水果,其中維生素 C 含量大于或等于 20。

所以基本上 has_child 和 has_parent 查詢只是彼此的關(guān)系。

實(shí)時用例:

分層數(shù)據(jù)建模

讓我們考慮一個場景,我們正在對組織結(jié)構(gòu)或產(chǎn)品類別等分層數(shù)據(jù)進(jìn)行建模。 has_child 和 has_parent 查詢使我們能夠檢索層次結(jié)構(gòu)各個級別的相關(guān)信息,從而促進(jìn)高效的數(shù)據(jù)導(dǎo)航。

內(nèi)容過濾

在內(nèi)容管理系統(tǒng)中,我們可能有代表文章的父文檔和代表評論的子文檔。 利用 has_child 查詢,我們可以根據(jù)評論中的特定條件過濾文章,并為客戶提供精致的搜索體驗(yàn)。

雖然 has_child 和 has_parent 查詢?yōu)橄嚓P(guān)文檔搜索提供了強(qiáng)大的選項(xiàng),但我們應(yīng)該始終小心常見問題,例如索引之間的映射不一致、較大層次結(jié)構(gòu)的查詢性能問題等。

為了最大限度地提高 has_child 和 has_parent 查詢的有效性,我們應(yīng)該確保始終遵循以下最佳實(shí)踐。

  1. 索引設(shè)置:索引設(shè)置應(yīng)配置為支持有效的父子關(guān)系。 根據(jù)用例適當(dāng)調(diào)整 “index.mapping.single_type” 等設(shè)置。
  2. 查詢優(yōu)化:應(yīng)使用緩存和過濾等查詢優(yōu)化技術(shù)來增強(qiáng)搜索性能。

因此,如果這是用于理解 has_child 和 has_parent 查詢的入門知識,Elastic 的官方文檔可以幫助我們更多地了解有關(guān)相同內(nèi)容的更多詳細(xì)信息。

更多閱讀:Elasticsearch:在 Elasticsearch 中的 join 數(shù)據(jù)類型父子關(guān)系。文章來源地址http://www.zghlxwxcb.cn/news/detail-783915.html

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

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

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

相關(guān)文章

  • 常用的Elasticsearch查詢DSL

    1.基本查詢 2.多條件查詢 3.范圍查詢 4.復(fù)雜查詢 5.聚合查詢

    2024年02月12日
    瀏覽(27)
  • ElasticSearch——DSL查詢及結(jié)果處理

    ElasticSearch——DSL查詢及結(jié)果處理

    常見的查詢類型包括: 查詢類型 描述 查詢所有 查詢出所有數(shù)據(jù) 例如:match_all 全文檢索查詢 利用分詞器對用戶輸入內(nèi)容分詞,然后去倒排索引庫中匹配。例如:match 、 multi_match 精確查詢 根據(jù)精確詞條值查找數(shù)據(jù),一般是查找keyword、數(shù)值、日期、boolean等類型字段。例如:id

    2024年02月06日
    瀏覽(23)
  • ElasticSearch Index查詢(Query DSL)

    先貼一個Query DSL的官方文檔:https://www.elastic.co/guide/en/elasticsearch/reference/current/query-dsl.html 我平時喜歡查看官方文檔,了解數(shù)據(jù)查詢和存儲方面的性能優(yōu)化點(diǎn),下面是積累的腳本分享。 查詢語句格式 查詢類型:match_all,match,term,range,fuzzy,bool 等等 查詢條件:查詢條件會根

    2024年02月07日
    瀏覽(23)
  • ElasticSearch級查詢Query DSL上

    ElasticSearch級查詢Query DSL上

    目錄 ES高級查詢Query DSL match_all 返回源數(shù)據(jù)_source 返回指定條數(shù)size 分頁查詢fromsize 指定字段排序sort 術(shù)語級別查詢 Term query術(shù)語查詢 Terms Query多術(shù)語查詢 exists query ids query range query范圍查詢 prefix query前綴查詢 wildcard query通配符查詢 fuzzy query模糊查詢 ? ? ? ?ES中提供了一種強(qiáng)大

    2024年02月20日
    瀏覽(28)
  • ElasticSearch 高級查詢語法Query DSL實(shí)戰(zhàn)

    ElasticSearch 高級查詢語法Query DSL實(shí)戰(zhàn)

    ES中提供了一種強(qiáng)大的檢索數(shù)據(jù)方式,這種檢索方式稱之為Query DSL(Domain Specified Language 領(lǐng)域?qū)S谜Z言) , Query DSL是利用Rest API傳遞JSON格式的請求體(RequestBody)數(shù)據(jù)與ES進(jìn)行交互,這種方式的豐富查詢語法讓ES檢索變得更強(qiáng)大,更簡潔。 官方文檔:https://www.elastic.co/guide/en/elasti

    2024年02月07日
    瀏覽(33)
  • 【ElasticSearch系列-03】ElasticSearch的高級句法查詢Query DSL

    【ElasticSearch系列-03】ElasticSearch的高級句法查詢Query DSL

    ElasticSearch系列整體欄目 內(nèi)容 鏈接地址 【一】ElasticSearch下載和安裝 https://zhenghuisheng.blog.csdn.net/article/details/129260827 【二】ElasticSearch概念和基本操作 https://blog.csdn.net/zhenghuishengq/article/details/134121631 【二】ElasticSearch的高級查詢Query DSL https://blog.csdn.net/zhenghuishengq/article/details/1

    2024年02月06日
    瀏覽(29)
  • 2.ElasticSearch 高級查詢語法Query DSL實(shí)戰(zhàn)

    2.ElasticSearch 高級查詢語法Query DSL實(shí)戰(zhàn)

    ES中提供了一種強(qiáng)大的檢索數(shù)據(jù)方式,這種檢索方式稱之為Query DSL (Domain Specified Language 領(lǐng)域?qū)S谜Z言 ) , Query DSL是利用Rest API傳遞JSON格式的請求體(RequestBody)數(shù)據(jù)與ES進(jìn)行交互,這種方式的豐富查詢語法讓ES檢索變得更強(qiáng)大,更簡潔。 Query DSL | Elasticsearch Guide [7.17] | Elastic 語法

    2024年03月15日
    瀏覽(33)
  • Elasticsearch --- DSL、RestClient查詢文檔、搜索結(jié)果處理

    Elasticsearch --- DSL、RestClient查詢文檔、搜索結(jié)果處理

    elasticsearch的查詢依然是基于JSON風(fēng)格的DSL來實(shí)現(xiàn)的。 ? Elasticsearch提供了基于JSON的DSL(Domain Specific Language)來定義查詢。常見的查詢類型包括: 查詢所有 :查詢出所有數(shù)據(jù),一般測試用。例如:match_all 全文檢索(full text)查詢 :利用分詞器對用戶輸入內(nèi)容分詞,然后去倒排

    2024年02月05日
    瀏覽(27)
  • Elasticsearch 系列(四)- DSL實(shí)現(xiàn)自動補(bǔ)全查詢

    Elasticsearch 系列(四)- DSL實(shí)現(xiàn)自動補(bǔ)全查詢

    本章將和大家分享如何通過 Elasticsearch 實(shí)現(xiàn)自動補(bǔ)全查詢功能。 1、自動補(bǔ)全需求說明 當(dāng)用戶在搜索框輸入字符時,我們應(yīng)該提示出與該字符有關(guān)的搜索項(xiàng),如圖: 2、使用拼音分詞 要實(shí)現(xiàn)根據(jù)字母做補(bǔ)全,就必須對文檔按照拼音分詞。在 GitHub 上恰好有 Elasticsearch 的 拼音分

    2024年03月17日
    瀏覽(19)
  • SpringCloud(十)——ElasticSearch簡單了解(二)DSL查詢語句及RestClient查詢文檔

    SpringCloud(十)——ElasticSearch簡單了解(二)DSL查詢語句及RestClient查詢文檔

    查詢所有 :查詢出所有數(shù)據(jù),一般測試用。例如: match_all 全文檢索查詢 :利用分詞器對用戶輸入內(nèi)容分詞,然后去倒排索引庫中匹配。例如: match_query multi_match_query 精確查詢 :根據(jù)精確詞條值查找數(shù)據(jù),一般是查找keyword、數(shù)值、日期、boolean等類型字段。例如: ids range

    2024年02月10日
    瀏覽(24)

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

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

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

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

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包