1. 程式人生 > >Elasticsearch之外掛es ik配置自定義中文分詞詞典

Elasticsearch之外掛es ik配置自定義中文分詞詞典

1. 首先需要安裝好ik

2. 配置自定義中文分詞詞典

如果寶寶們已經安裝好ik,在es中測試分詞成功的,可以新增自己的熱詞庫與停止庫
① cd 到自己的elasticsearch-6.2.2/config/analysis-ik目錄下,可以看到有很多dic(dictionary字典),ik也是基於詞典進行分詞的
②新建目錄custom

mkdir custom
③新建txt檔案或dic檔案,或者下載詞典庫(我是複製ik的dic檔案並加上自己的短語做測試),如下所示,本人裡面加了拓展檔案ext.txt”逼格”詞語,拓展停止檔案english_stopword.txt “java”詞語
這裡寫圖片描述

!!!這裡一定要注意一定要從第二行開始寫入詞語或短語,ik不讀第一行的詞語哦

④配置ik自定義詞典配置檔案

<?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">
custom/ext.txt</entry> <!--使用者可以在這裡配置自己的擴充套件停止詞字典--> <entry key="ext_stopwords">custom/english_stopword.txt</entry> <!--使用者可以在這裡配置遠端擴充套件字典 --> <!-- <entry key="remote_ext_dict">words_location</entry> --> <!--使用者可以在這裡配置遠端擴充套件停止詞字典-->
<!-- <entry key="remote_ext_stopwords">words_location</entry> --> </properties>

⑤重啟es服務
這裡寫圖片描述
可以看到已經加載出來了

⑥測試
本人安裝的es的圖形工具kibana,建立索引,建立對映,分詞檢測

PUT testindex


POST testindex/test/_mapping
{
  "properties": {
    "content":{
      "type": "text",
      "analyzer": "ik_max_word",
      "search_analyzer": "ik_max_word"
    }
  }
}


POST testindex/_analyze
{
  "field": "content",
  "text": ["java 是個 逼格高技術"]

}

分詞結果如下,可以看到java被停止,逼格被拓展,嘻嘻,還不錯

{
  "tokens": [
    {
      "token": "是",
      "start_offset": 5,
      "end_offset": 6,
      "type": "CN_CHAR",
      "position": 0
    },
    {
      "token": "個",
      "start_offset": 6,
      "end_offset": 7,
      "type": "CN_CHAR",
      "position": 1
    },
    {
      "token": "逼格",
      "start_offset": 8,
      "end_offset": 10,
      "type": "CN_WORD",
      "position": 2
    },
    {
      "token": "高技術",
      "start_offset": 10,
      "end_offset": 13,
      "type": "CN_WORD",
      "position": 3
    },
    {
      "token": "高技",
      "start_offset": 10,
      "end_offset": 12,
      "type": "CN_WORD",
      "position": 4
    },
    {
      "token": "技術",
      "start_offset": 11,
      "end_offset": 13,
      "type": "CN_WORD",
      "position": 5
    }
  ]
}

相關推薦

Elasticsearch外掛es ik配置定義中文詞典

1. 首先需要安裝好ik 2. 配置自定義中文分詞詞典 如果寶寶們已經安裝好ik,在es中測試分詞成功的,可以新增自己的熱詞庫與停止庫 ① cd 到自己的elasticsearch-6.2.2/config/analysis-ik目錄下,可以看到有

Elasticsearch中文外掛es-ik定義

開發十年,就只剩下這套架構體系了! >>>   

安裝IK器及定義擴充套件

1.為什麼用ik分詞器? 因為Elasticsearch中預設的標準分詞器分詞器對中文分詞不是很友好,會將中文詞語拆分成一個一箇中文的漢子。因此引入中文分詞器-es-ik外掛。  傳統分詞器:可以看到把奧迪當做兩個詞進行搜尋了,注意analyzer為"standard"

Lucene筆記20-Lucene的-實現定義同義詞器-實現器(良好設計方案)

一、目前存在的問題 在getSameWords()方法中,我們使用map臨時存放了兩個鍵值對用來測試,實際開發中,往往需要很多的這種鍵值對來處理,比如從某個同義詞詞典裡面獲取值之類的,所以說,我們需要一個類,根據key提供近義詞。 為了能更好的適應應用場景,我們先定義一個介面,其中定義一

Lucene筆記19-Lucene的-實現定義同義詞器-實現

一、同義詞分詞器的程式碼實現 package com.wsy; import com.chenlb.mmseg4j.Dictionary; import com.chenlb.mmseg4j.MaxWordSeg; import com.chenlb.mmseg4j.analysis.MM

Lucene筆記18-Lucene的-實現定義同義詞器-思路分析

一、實現自定義同義詞分詞器思路分析 前面文章我們提到同義詞分詞器,這裡我們先來分析下同義詞分詞器的設計思路。 首先我們有一個需要分詞的字串string,通過new StringReader(string)拿到Reader。 使用analyzer.tokenStream("co

定義lucene器,單字

在SearchManager裡定義分詞器 public class LuceneManager implements SearchManager { Analyzer analyzer = new ZCJChineseAnalyzer();     //&nbs

Elasticsearch初探(3)——簡單查詢與中文

一、簡單查詢 1.1 查詢全部 請求方式: GET 請求路徑: ES服務的IP:埠/索引名/{分組,可省略}/_search 以上篇文章建立的索引為例,搜尋結果如下: { "took": 0, "timed_out": false, "

Elasticsearch筆記六中文器及定義

中文分詞器 在lunix下執行下列命令,可以看到本來應該按照中文”北京大學”來查詢結果es將其分拆為”北”,”京”,”大”,”學”四個漢字,這顯然不符合我的預期。這是因為Es預設的是英文分詞器我需要為其配置中文分詞器。 curlHTTP://192.168.79.131:9

Elasticsearch安裝中文外掛ikES 2.3.3 & IK 1.9.3)

最近用到elasticsearch做全文檢索知識庫系統,系統已經大致開發完成,需要中文分詞,故網上搜索了下配置方法,可嘗試幾個都不可用,然後就看IK的git原始碼中有介紹,試了下,相比其他方法簡單很

.net持續整合cake篇cake任務依賴、定義配置薦及環境變數讀取

系列目錄 新建一個構建任務及任務依賴關係設定 上節我們通過新建一個HelloWorld示例講解了如何編寫build.cake以及如何下載build.ps1啟動檔案以及如何執行.實際專案中,我們使用最多的是對專案進行編譯.本節我們講解如何建立一個編譯任務. 新增一個編譯任務 我們仍然使用上節使用的build

springboot開發配置定義的錯誤介面和錯誤資訊

如何定製錯誤頁面? (1)在有模板引擎的情況下:在templates資料夾下的error/狀態碼;即將錯誤頁面命名為:錯誤狀態碼.html放在templates資料夾裡面的error資料夾下,發生此狀態碼的錯誤會來到對應的頁面。 頁面可以獲得的資訊: timestamp:時間 status:狀態碼 error

在struts2中配置定義攔截器放行多個方法

return med ttr limit ring req tac cat invoke 源碼: 自定義的攔截器類: //自定義攔截器類:LoginInterceptor ; package com.java.action.interceptor; import j

JSP編程專題2JSP核心三(定義EL函數和標簽)

自定義el函數 jstl中的el函數 自定義el標簽 自定義帶屬性的el標簽 自定義el遍歷標簽 1、自定義EL函數:a、自定義類,類中的方法使用static修飾符修飾:b、該類以及函數,需要在一個擴展名為.tld(tld,tag library definition,標簽庫定義)的XML

Zabbix(三):高級應用--展示、模版、定義屬性測試實例

zabbixZabbix的高級應用1.展示接口: (1)graph: simple graph:每個Item對應的展示圖形; custom graph:創建一個融合了多個simple graph的單個graph; (2)screen: 把多個custom graph整合於一個屏幕進行展示; (3)

PHP文件引用與定義函數

urn global sta include 賦值 傳遞 語法 功能實現 頁面 PHP文件間的引用 include語言結構 格式:mixed include(string resource); 將一個資源文件resource載入到當前PHP程序中; resource資

SpringMvc配置定義視圖

exce gpo hello render servlet throws pro body ews <!-- 配置視圖 BeanNameViewResolver 解析器: 使用視圖的名字來解析視圖 --> <!-- 通過 order 屬性來定義視圖解析

maven項目中配置定義welcome-file

自定義 技術分享 mave 分享圖片 http .com 配置 png 定義 上圖為文件路徑 相應的路徑maven項目中配置自定義welcome-file

spark源碼系列累加器實現機制及定義累加器

大數據 spark一,基本概念 累加器是Spark的一種變量,顧名思義該變量只能增加。有以下特點: 1,累加器只能在Driver端構建及並只能是Driver讀取結果,Task只能累加。 2,累加器不會改變Spark Lazy計算的特點。只會在Job觸發的時候進行相關累加操作。 3,現有累加器的類型。相信有很

Filebeat 6.0 把日誌直接輸入到ES中如何定義index

同時 emp elastic iba dex sts 報錯 註意 一個 臨時搭建了一套EFK(elasticsearch,filebeat,kibana),filebeat 6.0 默認的index 是filebeat+時間,這樣無法滿足正常的業務需求,如果是收集一個地方的