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

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

這篇具有很好參考價(jià)值的文章主要介紹了elasticsearch 基于ik分詞器的分詞查詢和模糊匹配。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

前言:elasticsearch 查詢有很多關(guān)鍵字,查詢的條件有固定格式,返回結(jié)果提示不明確,讓ES使用起來有點(diǎn)不方便的感覺,ES查詢方式很多,簡單介紹幾種使用點(diǎn)的,實(shí)用的

此處簡單梳理一下最常用的查詢

模糊匹配查詢

類似 mysql 語法中的 like ‘%value%’

http://localhost:9200/fileindex1/_search

{
  "query": {
  "match_phrase_prefix": {
    "name": {
      "query": "測試",
      "max_expansions": 50
    }
  }}
}

   @Test
    void testSearch2() throws IOException {
        SearchRequest searchRequest = new SearchRequest("fileindex1");
        //構(gòu)建搜索條件
        SearchSourceBuilder sourceBuilder = new SearchSourceBuilder();
        //查詢條件,我們可以使用SearchSourceBuilder工具來實(shí)現(xiàn)
        //精確匹配QueryBuilders.termQuery()
        MatchPhrasePrefixQueryBuilder matchQueryBuilder = QueryBuilders.matchPhrasePrefixQuery("name","測試");
        sourceBuilder.query(matchQueryBuilder);
        sourceBuilder.timeout(new TimeValue(60, TimeUnit.SECONDS));
        searchRequest.source(sourceBuilder);
        SearchResponse searchResponse = client.search(searchRequest, RequestOptions.DEFAULT);
        System.out.println(JSON.toJSONString(searchResponse));
        System.out.println("+++++++++++++++++++++++++++++++++++++++++");
        for (SearchHit hit : searchResponse.getHits()) {
            System.out.println(hit.getSourceAsMap());
        }
    }

類似于百度的分詞查詢

將查詢的內(nèi)容分解,提取。例如 文檔數(shù)據(jù)庫 ,就會被分詞器 分解為 文檔 ,數(shù)據(jù) ,數(shù)據(jù)庫等 查詢返回更加有廣度

分詞查詢接口

http://localhost:9200/_analyze

{
	"analyzer":"ik_max_word",
	"text":"文檔數(shù)據(jù)庫"
}

分詞解析

{
    "111": [
        {
            "111": "文檔",
            "start_offset": 0,
            "end_offset": 2,
            "type": "CN_WORD",
            "position": 0
        },
        {
            "111": "數(shù)據(jù)庫",
            "start_offset": 2,
            "end_offset": 5,
            "type": "CN_WORD",
            "position": 1
        },
        {
            "111": "數(shù)據(jù)",
            "start_offset": 2,
            "end_offset": 4,
            "type": "CN_WORD",
            "position": 2
        },
        {
            "111": "庫",
            "start_offset": 4,
            "end_offset": 5,
            "type": "CN_CHAR",
            "position": 3
        }
    ]
}

查詢會將分詞解析出的分詞

ES查詢條件 分詞查詢

http://localhost:9200/fileindex1/_search

 {
  "query": {
    "match": {
      "name": "文檔數(shù)據(jù)庫"
    }
  }
}
  @Test
    void testSearch1() throws IOException {
        SearchRequest searchRequest = new SearchRequest("fileindex1");
        //構(gòu)建搜索條件
        SearchSourceBuilder sourceBuilder = new SearchSourceBuilder();

        //查詢條件,我們可以使用SearchSourceBuilder工具來實(shí)現(xiàn)
        //精確匹配QueryBuilders.termQuery()
        MatchQueryBuilder matchQueryBuilder = QueryBuilders.matchQuery("name","測試");
        sourceBuilder.query(matchQueryBuilder);
        sourceBuilder.timeout(new TimeValue(60, TimeUnit.SECONDS));
        searchRequest.source(sourceBuilder);
        SearchResponse searchResponse = client.search(searchRequest, RequestOptions.DEFAULT);
        System.out.println(JSON.toJSONString(searchResponse));
        System.out.println("+++++++++++++++++++++++++++++++++++++++++");
        for (SearchHit hit : searchResponse.getHits()) {
            System.out.println(hit.getSourceAsMap());
        }
    }

根據(jù)具體字段精確查詢內(nèi)容

{
  "query": {
    "fuzzy": {
      "attachment.author.keyword": "測試"
    }
  }
}
 // 根據(jù)字段精準(zhǔn)查詢
    @Test
    void testSearch3() throws IOException {
        SearchRequest searchRequest = new SearchRequest("fileindex1");
        //構(gòu)建搜索條件
        SearchSourceBuilder sourceBuilder = new SearchSourceBuilder();
        //查詢條件,我們可以使用SearchSourceBuilder工具來實(shí)現(xiàn)
        //精確匹配QueryBuilders.termQuery()
        FuzzyQueryBuilder matchQueryBuilder = QueryBuilders.fuzzyQuery("attachment.author.keyword","user
        ");
        sourceBuilder.query(matchQueryBuilder);
        sourceBuilder.timeout(new TimeValue(60, TimeUnit.SECONDS));
        searchRequest.source(sourceBuilder);
        SearchResponse searchResponse = client.search(searchRequest, RequestOptions.DEFAULT);
        System.out.println(JSON.toJSONString(searchResponse));
        System.out.println("+++++++++++++++++++++++++++++++++++++++++");
        for (SearchHit hit : searchResponse.getHits()) {
            System.out.println(hit.getSourceAsMap());
        }
    }

ES 高亮顯示查詢

http://localhost:9200/fileindex1/_search
{
  "query": {
    "bool": {
      "should": [
        {
          "match": {
            "attachment.author": "NOOB"
          }
        },
        {
          "match": {
            "attachment.content": "省政府"
          }
        }
      ]
    }
  },
  "highlight": {
    "fields": {
      "attachment.author": {},
      "attachment.content": {}
    }
  }
}

java 實(shí)現(xiàn)方式

  void testSearch2() throws IOException {
        SearchRequest searchRequest = new SearchRequest("fileindex1");
        //構(gòu)建搜索條件
        SearchSourceBuilder sourceBuilder = new SearchSourceBuilder();
        //查詢條件,我們可以使用SearchSourceBuilder工具來實(shí)現(xiàn)
        //精確匹配QueryBuilders.termQuery()
        MatchPhrasePrefixQueryBuilder matchQueryBuilder = QueryBuilders.matchPhrasePrefixQuery("attachment.content","皇帝");
        sourceBuilder.query(matchQueryBuilder);
        sourceBuilder.timeout(new TimeValue(60, TimeUnit.SECONDS));
        searchRequest.source(sourceBuilder);
        // 高亮顯示
        HighlightBuilder highlightBuilder = new HighlightBuilder();
        highlightBuilder.field("attachment.author").field("attachment.content");
        highlightBuilder.preTags("<span style=\"color: red\">");
        highlightBuilder.postTags("</span>");
        sourceBuilder.highlighter(highlightBuilder);
        SearchResponse searchResponse = client.search(searchRequest, RequestOptions.DEFAULT);
        //System.out.println(JSON.toJSONString(searchResponse));
        System.out.println("+++++++++++++++++++++++++++++++++++++++++");
        System.out.println(JSON.toJSONString(searchResponse.getHits()));
        for (SearchHit hit : searchResponse.getHits()) {
            System.out.println(hit.getHighlightFields());
        }
    }

es分詞模糊查詢,elasticsearch,數(shù)據(jù)庫,大數(shù)據(jù)文章來源地址http://www.zghlxwxcb.cn/news/detail-598963.html

到了這里,關(guān)于elasticsearch 基于ik分詞器的分詞查詢和模糊匹配的文章就介紹完了。如果您還想了解更多內(nèi)容,請?jiān)谟疑辖撬阉鱐OY模板網(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)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

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

相關(guān)文章

  • Elasticsearch分詞詳解:ES分詞介紹、倒排索引介紹、分詞器的作用、停用詞

    詳見:https://blog.csdn.net/weixin_40612128/article/details/123476053

    2024年02月12日
    瀏覽(33)
  • es elasticsearch 十 中文分詞器ik分詞器 Mysql 熱更新詞庫

    es elasticsearch 十 中文分詞器ik分詞器 Mysql 熱更新詞庫

    目錄 中文分詞器ik分詞器 介紹 安裝 使用分詞器 Ik分詞器配置文件 Mysql 熱更新詞庫 介紹 中文分詞器按照中文進(jìn)行分詞,中文應(yīng)用最廣泛的是ik分詞器 安裝 官網(wǎng)下載對應(yīng)版本zip 下載 ?放到 ?plugins 目錄 新建 ik文件夾 考入解析zip 重啟 es //分成小單詞 使用分詞器 ik_max_word分成

    2024年02月07日
    瀏覽(21)
  • Elasticsearch07:ES中文分詞插件(es-ik)安裝部署

    Elasticsearch07:ES中文分詞插件(es-ik)安裝部署

    在中文數(shù)據(jù)檢索場景中,為了提供更好的檢索效果,需要在ES中集成中文分詞器,因?yàn)镋S默認(rèn)是按照英文的分詞規(guī)則進(jìn)行分詞的,基本上可以認(rèn)為是單字分詞,對中文分詞效果不理想。 ES之前是沒有提供中文分詞器的,現(xiàn)在官方也提供了一些,但是在中文分詞領(lǐng)域,IK分詞器是

    2024年02月03日
    瀏覽(28)
  • ElasticSearch中文分詞和模糊查詢

    ElasticSearch中文分詞和模糊查詢

    ? ? ? ? ElasticSearch是一個(gè)一個(gè)分布式的實(shí)時(shí)文檔存儲,每一個(gè)字段都可以被索引與搜索,并且能支持PB級別的結(jié)構(gòu)化或者非結(jié)構(gòu)化數(shù)據(jù)。早期我們應(yīng)用的全局搜索是簡單的SQL模糊查詢,為了分擔(dān)數(shù)據(jù)庫壓力所以用了ES,選擇他的原因除了以上幾點(diǎn)外,還有其提供的API方式簡單

    2024年02月03日
    瀏覽(26)
  • Elasticsearch使用系列-ES增刪查改基本操作+ik分詞

    Elasticsearch使用系列-ES增刪查改基本操作+ik分詞

    ES是一個(gè)NoSql數(shù)據(jù)庫應(yīng)用。和其他數(shù)據(jù)庫一樣,我們?yōu)榱朔奖悴僮鞑榭此?,需要安裝一個(gè)可視化工具 Kibana。 官網(wǎng): https://www.elastic.co/cn/downloads/kibana 和前面安裝ES一樣,選中對應(yīng)的環(huán)境下載,這里選擇windows環(huán)境,注意安裝的版本一定要和ES的版本一致,不然可能會啟動不起來。

    2024年02月01日
    瀏覽(36)
  • Docker安裝ElasticSearch、Kibana、IK分詞器以及設(shè)置ES賬戶密碼

    Docker安裝ElasticSearch、Kibana、IK分詞器以及設(shè)置ES賬戶密碼

    版本聲明: 系統(tǒng) :CentOS 7.9(云服務(wù)器) ES版本 :7.6.1 Kibana :7.6.1 Ik分析器版本 :7.6.1 1、拉取鏡像 2、創(chuàng)建掛載目錄 設(shè)置所有用戶讀寫執(zhí)行權(quán)限 : sudo chmod -R 777 /docker_config/elasticsearch/ 3、創(chuàng)建elasticsearch.yml 配置文件 4、創(chuàng)建容器 參數(shù)說明 : -p 端口映射 -e discovery.type=single

    2023年04月09日
    瀏覽(34)
  • 搜索引擎elasticsearch :安裝elasticsearch (包含安裝組件kibana、IK分詞器、部署es集群)

    搜索引擎elasticsearch :安裝elasticsearch (包含安裝組件kibana、IK分詞器、部署es集群)

    kibana可以幫助我們方便地編寫DSL語句,所以還要裝kibana 因?yàn)槲覀冞€需要部署kibana容器,因此需要讓es和kibana容器互聯(lián)。這里先創(chuàng)建一個(gè)網(wǎng)絡(luò): 這里我們采用elasticsearch的7.12.1版本的鏡像,這個(gè)鏡像體積非常大,接近1G。不建議大家自己pull。 課前資料提供了鏡像的tar包: 大家將

    2024年02月16日
    瀏覽(27)
  • elasticsearch基礎(chǔ)6——head插件安裝和web頁面查詢操作使用、ik分詞器

    elasticsearch基礎(chǔ)6——head插件安裝和web頁面查詢操作使用、ik分詞器

    插件是用戶以自定義方式增強(qiáng)es功能的一種方法,分兩類,核心插件和社區(qū)貢獻(xiàn)插件。 插件太多,只需要熟悉插件的安裝流程即可,根據(jù)項(xiàng)目需要再自行安裝。 核心插件: 核心插件屬于es項(xiàng)目,插件的版本號始終與es安裝包的版本號相同,這些插件由es團(tuán)隊(duì)維護(hù)。 項(xiàng)目地址

    2024年02月14日
    瀏覽(51)
  • ElasticSearch的使用,安裝ik分詞器,自定義詞庫,SpringBoot整合ES(增、刪、改、查)

    ElasticSearch的使用,安裝ik分詞器,自定義詞庫,SpringBoot整合ES(增、刪、改、查)

    保存一個(gè)數(shù)據(jù),保存在哪個(gè)索引的哪個(gè)類型下,指定用哪個(gè)唯一標(biāo)識(相當(dāng)于,保存一個(gè)數(shù)據(jù),保存在那個(gè)數(shù)據(jù)庫中的哪個(gè)表中,指定主鍵ID) 例:PUT customer/external/1;在customer索引下的external類型下保存1號數(shù)據(jù)name為John Doe的數(shù)據(jù) POST和PUT都可以新增數(shù)據(jù) 注意: POST 新增。如果

    2023年04月25日
    瀏覽(59)
  • Elasticsearch基礎(chǔ)篇(五):創(chuàng)建es索引并學(xué)習(xí)分析器、過濾器、分詞器的作用和配置

    Elasticsearch基礎(chǔ)篇(五):創(chuàng)建es索引并學(xué)習(xí)分析器、過濾器、分詞器的作用和配置

    Elasticsearch 是一個(gè)分布式搜索和分析引擎,它使用JSON文檔來存儲數(shù)據(jù)。索引是Elasticsearch中數(shù)據(jù)的基本組織單元之一,下面是Elasticsearch索引相關(guān)的基本概念: 結(jié)構(gòu)元素 Elasticsearch MySQL 數(shù)據(jù)庫 索引(Index) 數(shù)據(jù)庫(Database) 表格 類型(Type)* 表(Table) 記錄/行 文檔(Document)

    2024年02月03日
    瀏覽(63)

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

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

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

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

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包