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

elasticsearch7.17.3 實(shí)現(xiàn)類似mysql的like查詢

這篇具有很好參考價(jià)值的文章主要介紹了elasticsearch7.17.3 實(shí)現(xiàn)類似mysql的like查詢。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問(wèn)。

前言:現(xiàn)在想要實(shí)現(xiàn)在elasticsearch中類似于mysql的like查詢方式,有下面幾種方法可以參考

建議:wildcard方法是純純的like查詢方式平替,但是性能差,上百GB的數(shù)據(jù)量后就會(huì)很慢。根據(jù)自己業(yè)務(wù)量需求,前面兩種方式能解決的情況下盡量用前面兩種方式。前兩種方式可以修改索引細(xì)粒度逐步靠近like查詢效果。

一、match方式查詢

1、前言:

  • match方式是會(huì)將輸入篩選的內(nèi)容先分詞,匹配庫(kù)中的數(shù)據(jù)記錄的分詞內(nèi)容,匹配成功則會(huì)返回。
  • 這種方式由于使用到了分詞,根據(jù)自己的數(shù)據(jù)量確定分詞細(xì)粒度,如果想要貼近like,ngram分詞器細(xì)粒度可設(shè)置成1
  • 此查詢適用于文本搜索場(chǎng)景,可以匹配文檔中的任意一個(gè)詞,但無(wú)法保證匹配的詞語(yǔ)在文檔中是相鄰的
  • 在匹配長(zhǎng)文本時(shí),匹配的結(jié)果可能會(huì)受到文本長(zhǎng)度的影響,導(dǎo)致查詢結(jié)果不準(zhǔn)確

2、es查詢命令

下面命令是篩選fileName中含有2010的記錄

注意:由于match會(huì)分詞后查詢,所以fileName中含有2,0,1這些字符的記錄也會(huì)返回

POST es_test/_search
{
  "track_total_hits": true, 
  "size": 1000, 
  "query": {
    "match": {
      "fileName": "2010"
    }
  }
}

二、match_phrase方式查詢

1、前言

  • match_phrase查詢是一種基于分詞的短語(yǔ)匹配查詢,它可以匹配多個(gè)關(guān)鍵字,并保證這些關(guān)鍵字在文檔中是相鄰的
  • 此方式查詢內(nèi)容過(guò)長(zhǎng)時(shí)效率會(huì)變慢,注意這方面的限制
  • 輸入的內(nèi)容會(huì)被當(dāng)做一個(gè)完整的短語(yǔ)進(jìn)行匹配。比如輸入的是2010,只會(huì)查詢包含完整短語(yǔ)"2010"的文檔。如果某個(gè)文檔中包含了"2010年"或者"在2010年度"等,這些文檔是無(wú)法被匹配出來(lái)的

2、es查詢命令

下面命令是篩選fileName中后綴為.mp4的記錄

POST es_test/_search
{
  "track_total_hits": true, 
  "size": 1000, 
  "query": {
    "match_phrase": {
      "fileName": ".mp4"
    }
  }
}

三、wildcard方式查詢

1、前言

  • Wildcard查詢是一種基于通配符的查詢方式,通配符包括 *(匹配任意字符)和 ?(匹配單個(gè)字符)
  • Wildcard查詢性能相對(duì)較低,因?yàn)樗鼤?huì)掃描整個(gè)索引來(lái)找到匹配的結(jié)果

2、es查詢命令

此命令是查詢fileName中包含mp4的記錄

POST es_test/_search
{
  "track_total_hits": true, 
  "size": 1000, 
  "query": {
    "wildcard": {
      "fileName": "*mp4*"
    }
  }
}

四、綜合方式復(fù)雜查詢

上面是單個(gè)查詢方式的用法,如果顯示更友好,可以下面方式優(yōu)化

1、需求場(chǎng)景

現(xiàn)在想要實(shí)現(xiàn)如下需求,根據(jù)百度查詢效果一樣的,輸入一個(gè)內(nèi)容,完全匹配的排前面,部分匹配的排后面

2、思路

用match_phrase方式查詢完全匹配的內(nèi)容,用match查詢部分匹配的內(nèi)容,并分別加權(quán)

3、es查詢命令

下面命令是fileName中完整包含2010字段的排前面,加權(quán)10,部分包含2010字段的排后面,加權(quán)5,es查詢結(jié)果不sort的情況下默認(rèn)會(huì)按分?jǐn)?shù)排序

POST es_test/_search
{
  "track_total_hits": true, 
  "size": 1000, 
  "query": {
    "bool": {
      "should": [
        {
          "bool": {
            "must": [
              {
                "match_phrase": {
                  "fileName": "2010"
                }
              }
            ],
            "boost": 10
          }
        },
        {
          "bool": {
            "must": [
              {
                "match": {
                  "fileName": "2010"
                }
              }
            ],
            "boost": 5
          }
        }
      ]
    }
  }
}

如果有其他建議或問(wèn)題意見(jiàn),歡迎留言交流?。?!文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-721417.html

到了這里,關(guān)于elasticsearch7.17.3 實(shí)現(xiàn)類似mysql的like查詢的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

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

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

相關(guān)文章

  • Elasticsearch實(shí)現(xiàn)Mysql的Like效果

    在Mysql數(shù)據(jù)庫(kù)中,模糊搜索通常使用LIKE。然而,隨著數(shù)據(jù)量的不斷增加,Mysql在處理模糊搜索時(shí)可能面臨性能瓶頸。因此,引入Elasticsearch作為搜索引擎,以提高搜索性能和用戶體驗(yàn)成為一種合理的選擇。 在ES中,影響搜索結(jié)果的因素多種多樣,包括分詞器、Match搜索、

    2024年02月19日
    瀏覽(24)
  • Linux環(huán)境安裝配置Elasticsearch7.17

    Linux環(huán)境安裝配置Elasticsearch7.17

    服務(wù)器環(huán)境為CentOS7.6,Elasticsearch版本為7.17.4 2.1 下載 選擇要安裝的版本:下載地址 解壓到指定目錄 重命名為es 2.2 創(chuàng)建ES用戶 Elasticsearch不允許用root身份啟動(dòng),所以要新建一個(gè)用戶并授予權(quán)限 2.3 修改ES配置文件 修改ES的核心配置文件 在文件末尾添加以下幾行 修改內(nèi)存參數(shù)配

    2024年02月06日
    瀏覽(20)
  • python使用ElasticSearch7.17.6筆記

    python使用ElasticSearch7.17.6筆記

    數(shù)操作系統(tǒng):windows10 我開(kāi)始使用最新的版本,8.4.1但是使用過(guò)程中kibana啟動(dòng)不了,就索性使用舊版; 下載地址: es7.17.6 下載地址? kibana7.17.6下載地址 解壓到合適的位置,更改elasticsearch.yml 添加配置如下: 更改kibana.yml配置 到各自的bin目錄下啟動(dòng)兩個(gè)服務(wù)bat文件, 在瀏覽器中

    2024年02月07日
    瀏覽(22)
  • 本地部署Canal筆記-實(shí)現(xiàn)MySQL與ElasticSearch7數(shù)據(jù)同步

    本地部署Canal筆記-實(shí)現(xiàn)MySQL與ElasticSearch7數(shù)據(jù)同步

    本地搭建canal實(shí)現(xiàn)mysql數(shù)據(jù)到es的簡(jiǎn)單的數(shù)據(jù)同步,僅供學(xué)習(xí)參考 建議首先熟悉一下canal同步方式:https://github.com/alibaba/canal/wiki 本地搭建MySQL數(shù)據(jù)庫(kù) 本地搭建ElasticSearch 本地搭建canal-server 本地搭建canal-adapter 本地環(huán)境為window11,大部分組件采用docker進(jìn)行部署,MySQL采用8.0.27, 推薦

    2024年02月02日
    瀏覽(96)
  • docker部署Elasticsearch7.17集群和kibana

    docker部署Elasticsearch7.17集群和kibana

    環(huán)境準(zhǔn)備: 3臺(tái)centos7.9的服務(wù)器 vim /etc/sysctl.conf添加:vm.max_map_count=262144 sysctl -w vm.max_map_count=262144 即時(shí)生效 cat /proc/sys/vm/max_map_count 查看 #創(chuàng)建es配置目錄 mkdir /home/es/config -p #創(chuàng)建es數(shù)據(jù)目錄 mkdir /home/es/data #創(chuàng)建es插件目錄 mkdir /home/es/plugins #授權(quán)目錄 chmod -R 777 /home/es 在/home/e

    2024年02月10日
    瀏覽(44)
  • Mysql 實(shí)現(xiàn)類似于 ElasticSearch 的全文檢索功能

    ? 一、前言 今天一個(gè)同事問(wèn)我,如何使用 Mysql 實(shí)現(xiàn)類似于 ElasticSearch 的全文檢索功能,并且對(duì)檢索跑分?我當(dāng)時(shí)腦子里立馬產(chǎn)生了疑問(wèn)?為啥不直接用es呢?簡(jiǎn)單好用還賊快。但是聽(tīng)他說(shuō),數(shù)據(jù)量不多,客戶給的時(shí)間非常有限,根本沒(méi)時(shí)間去搭建es,所以還是看一下

    2024年02月03日
    瀏覽(16)
  • 【軟件安裝教程】elasticsearch7.17安裝設(shè)置用戶名和密碼

    【軟件安裝教程】elasticsearch7.17安裝設(shè)置用戶名和密碼

    鏈接:https://pan.baidu.com/s/1f3jTc4kaQvu_i9pVbuXdPQ? 提取碼:l3g1? 下載后解壓? ? bin :存入一些二進(jìn)制腳本,包括啟動(dòng) ES、安裝插件命令等都在這里。 config :存放 ES 的配置文件,主要是 elasticsearch.yml 。 jdk :ES 自帶的 Java 環(huán)境,所以我們無(wú)需自己安裝 Java 環(huán)境。 lib :存放 ES 相關(guān)

    2024年02月13日
    瀏覽(21)
  • SkyWalking+ElasticSearch7實(shí)現(xiàn)日志追蹤

    SkyWalking+ElasticSearch7實(shí)現(xiàn)日志追蹤

    國(guó)內(nèi)es下載地址 修改elasticsearch-env ,elasticsearch7 先去獲取本地的jdk 如果jdk 環(huán)境不存在則會(huì)使用 elasticsearch-7.8.0/jdk 下的jdk ,因?yàn)樾【幈镜豭dk版本為1.8 運(yùn)行時(shí)會(huì)報(bào)錯(cuò) future versions of Elasticsearch will require Java 11; your Java version from [/data/jdk1.8.0_111/jre] does not meet this requirement 因此我們

    2024年02月06日
    瀏覽(20)
  • Java中Elasticsearch使用類似MySQL的OR和AND查詢

    本文用實(shí)例來(lái)介紹如何使用Spring Data?Elasticsearch的ElasticsearchRestTemplate來(lái)操作ES,在Java中Elasticsearch使用類似MySQL的OR和AND進(jìn)行多條件查詢。 官網(wǎng) Elasticsearch Operations 一種復(fù)合查詢,把其余類型的查詢包裹進(jìn)來(lái),支持以下三種邏輯關(guān)系。 ES查詢實(shí)例如下: 在Java中代碼示例: 該m

    2024年02月02日
    瀏覽(20)
  • ElasticSearch 學(xué)習(xí)9 spring-boot ,elasticsearch7.16.1實(shí)現(xiàn)中文拼音分詞搜索

    ElasticSearch 學(xué)習(xí)9 spring-boot ,elasticsearch7.16.1實(shí)現(xiàn)中文拼音分詞搜索

    一、elasticsearch官網(wǎng)下載:Elasticsearch 7.16.1 | Elastic 二、拼音、ik、繁簡(jiǎn)體轉(zhuǎn)換插件安裝 ik分詞:GitHub - medcl/elasticsearch-analysis-ik: The IK Analysis plugin integrates Lucene IK analyzer into elasticsearch, support customized dictionary. 拼音分詞:GitHub - medcl/elasticsearch-analysis-pinyin: This Pinyin Analysis plugin is

    2024年01月22日
    瀏覽(27)

覺(jué)得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

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

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包