Elasticsearch——04全文搜索服務器_ES集成ik分詞器&類型文檔映射

1.ES集成ik分詞器java

        lucene因爲是jar工具包,若是要在使用lucene的環境下使用ik分詞器,只需導入對應jar,作一些配置就行.git

        以插件的方式集成ES服務器,客戶端只需告訴咱們某個字段要用這個分詞器就好了。github

步驟:數組

    ①服務端安裝ik插件服務器

    ②客戶端端指定字段用插件app

安裝:elasticsearch

            1)下載源碼:https://github.com/medcl/elasticsearch-analysis-ikmaven

            2)maven打包:mvn package工具

            3)安裝到es服務器測試

                       解壓到es/plugins

            4)配置

            5)重啓

 測試:

#測試ik分詞器
POST _analyze
{
  "analyzer":"ik_smart",
  "text":"中國駐洛杉磯領事館遭亞裔男子槍擊 嫌犯已自首"
}

2.類型文檔映射

        ES的文檔映射(mapping)機制用於進行字段類型或分詞器確認,將每一個字段匹配爲一種肯定的數據類型。-就至關於在設計表的時候爲字段指定類型.

    ES支持的數據類型:

① 基本字段類型
字符串:text(分詞),keyword(不分詞)   StringField(不分詞文本),TextFiled(要分詞文本)
        text默認爲全文文本,keyword默認爲非全文文本
數字:long,integer,short,double,float
日期:date
邏輯:boolean
② 複雜數據類型
對象類型:object
數組類型:array
地理位置:geo_point,geo_shape

        ①默認映射

            ES在沒有配置Mapping的狀況下新增文檔,ES會嘗試對字段類型進行猜想,並動態生成字段和類型的映射關係。

        

    ②自定義映射

type

類型:基本數據類型,integer,long,date,boolean,keyword,text...

enable

是否啓用:默認爲true。 false:不能索引、不能搜索過濾,僅在_source中存儲

頭像路徑

boost

權重提高倍數:用於查詢時加權計算最終的得分。

format

格式:通常用於指定日期格式,如 yyyy-MM-dd HH:mm:ss.SSS

ignore_above

長度限制:長度大於該值的字符串將不會被索引和存儲。

ignore_malformed

轉換錯誤忽略:true表明當格式轉換錯誤時,忽略該值,被忽略後不會被存儲和索引。

include_in_all

是否將該字段值組合到_all中。

null_value

默認控制替換值。如空字符串替換爲」NULL」,空數字替換爲-1

store

是否存儲:默認爲false。true意義不大,由於_source中已有數據

index

索引模式:analyzed (索引並分詞,text默認模式), not_analyzed (索引不分詞,keyword默認模式),no(不索引)

analyzer

索引分詞器:索引建立時使用的分詞器,如ik_smart,ik_max_word,standard

search_analyzer

搜索分詞器:搜索該字段的值時,傳入的查詢內容的分詞器。

fields

多字段索引:當對該字段須要使用多種索引模式時使用。

如:城市搜索New York

"city": {

     "type": "text",

     "analyzer": "ik_smart",

     "fields": {

            "raw": {

                "type":  "keyword"

             }

     }

}

city分詞

city.raw 不分詞

那麼之後搜索過濾和排序就可使用city.raw字段名

注意:若是已經有數據,不能直接作映射,先刪除掉,在添加映射,再添加數據.

    ③全局映射

默認映射-->全局映射->自定義映射

④優秀實踐

  1. 有數據不作映射
  2. 根據優先級倒序來

步驟1:

  1. 刪庫
  2. 建庫
  3. 作全局映射
  4. 自定義映射
  5. javaAPI作crud+查詢
相關文章
相關標籤/搜索