Elasticsearch7基礎3

9300與9200區別:

9300端口:ES節點之間通訊使用
9200端口:ES節點和外部通訊使用
9300是TGP協議端口號,ES集羣之間通訊端口號
9200端口號,暴露 ES RESTful接口端口號

Dsl語言查詢與過濾

什麼是DSL語言
es中的查詢請求有兩種方式,一種是簡易版的查詢,另外一種是使用JSON完整的請求體叫做結構化查詢(DSL)。
由於DSL查詢更爲直觀也更爲簡易,所以大都使用這種方式。
DSL查詢是POST過去一個json,由於post的請求是json格式的,所以存在很多靈活性,也有很多形式。

###term 查詢是精確匹配
GET /mymayikt/user/_search
{
  "query": {
    "term": {
      "name": "xiaohong"
    }
  }
}

#like match 支持分詞查詢
GET /mymayikt/user/_search
{
  "from": 0, 
  "size": 1, 
  "query": {
    "match": {
      "car": "奧迪"
    }
  }
}

Term與 Match區別:
Term查詢不會對字段進行分詞查詢,會採用精確匹配。
Match會根據該字段的分詞器,進行分詞查詢。

中文分詞器

因爲 Elasticsearch中默認的標準分詞器分詞器對中文分詞不是很友好,會將中文詞語拆分成一個一箇中文的漢字。因此引入中文分詞器-es-ik插件
官方網站下載https://github.com/medcl/elasticsearch-analysis-ik/releases
注意:es-ik分詞插件版本一定要和es安裝的版本對應
第一步:下載es的IK插件
第二步:上傳到/usr/share/elasticsearch/plugins/ik/  然後使用unzip命令解壓
第三步:重啓 elasticsearch即可

未使用中文分詞器時

返回結果:默認將中文詞語拆分成一個一箇中文的漢字

使用中文分詞器:請求及結果:

自定義擴展字典

在/usr/share/elasticsearch/plugins/ik/config/目錄下,創建dic文件
vi new_word.dic

馬雲
王者榮耀
公式相聲xxx

修改vi IKAnalyzer.cfg.xml文件

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE properties SYSTEM "http://java.sun.com/dtd/properties.dtd">
<properties>
        <comment>IK Analyzer 擴展配置</comment>
        <!--用戶可以在這裏配置自己的擴展字典 -->
        <entry key="ext_dict">new_word.dic</entry>
         <!--用戶可以在這裏配置自己的擴展停止詞字典-->
        <entry key="ext_stopwords"></entry>
        <!--用戶可以在這裏配置遠程擴展字典 -->
        <!-- <entry key="remote_ext_dict">words_location</entry> -->
        <!--用戶可以在這裏配置遠程擴展停止詞字典-->
        <!-- <entry key="remote_ext_stopwords">words_location</entry> -->
</properties>

修改後重啓elasticsearch

查詢結果:

發佈了104 篇原創文章 · 獲贊 52 · 訪問量 30萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章