Официалният плъгин за сегментиране на думи по подразбиране в elasticsearch не е идеален за китайска сегментация на думи. Например, сега ще взема конкретен пример, за да покажа защо плъгинът за сегментация на думи, предоставен от официалния уебсайт на ES, не е ефективен за сегментиране на думи на китайски. Референтна документация:
https://www.elastic.co/guide/en/ ... ting_analyzers.html
https://www.elastic.co/guide/en/ ... ndices-analyze.html
Подаваме данни към интерфейса за анализ, както следва:
http://ip:9200/_analyze POST请求
Ако използвате Elasticsearch директно, със сигурност ще срещнете неудобни проблеми при търсене на китайско съдържание.Китайските думи се разделят на китайски йероглифи една по еднаКогато използвате Кибана за рисуване, групирате според термина и в резултат китайският йероглиф се разделя на група.
За щастие, има два китайски плъгина за сегментиране на думи, написани от medcl (един от най-ранните хора, изучавали ES в Китай), единият е ik, а другият е mmseg, а следващият само въвежда употребата на ik.
Плъгинът IK Analysis интегрира анализатора Lucene IK в elasticsearch и поддържа персонализирани речници.
Адрес на проекта Elasticsearch-Analysis-IK:https://github.com/medcl/elasticsearch-analysis-ik
Install elasticsearch-analysis-ik
Първо, спрете Elasticsearch да работи, JPS намира процесния ID и го унищожавам с kill -9 process ID! (Така или иначе не го тествах, по-безопасно е да спра и инсталираш)
Инсталирайте чрез elasticsearch-plugin (поддържан от версия v5.5.1):
Забележка: Заменете 6.3.0 със собствена версия на elasticsearch
Инсталирах го на моя сървърElasticsearch е 6.5.2версия, така че командата е следната:
Грешката при инсталация е следната:
Изключение в нишката "main" java.nio.file.FileSystemException: /usr/local/elasticsearch-6.5.2/config/analysis-ik: Операцията не е разрешена
Инсталационният плъгин Elasticsearch трябва да се стартира като rootЗатова използваме su root, за да превключим на статус администратор, да изпълним инсталацията отново и тя е успешна, както е показано на фигурата по-долу:
Тестваме чрез подаване на заявка за публикация отново към интерфейса, и съдържанието на публикацията е следното:
Открих, че мога да разбирам семантиката ни нормално и разделих "архитект", "красив" и "архитектура" на една дума.
Каква е разликата между ik_max_word и ik_smart?
ik_max_word: Текстът ще бъде разделен на най-фината детайлност, като например "Национален химн на Народна република Китай" ще бъде разделен на "Народна република Китай, Китайски народ, Китай, Китай, Народна република, Народ, Народ, Народ, Република, Република, Хе, Национален химн" и ще изчерпа всички възможни комбинации;
ik_smart: Ще се направи най-грубото разделяне, като например разделянето на "Националния химн на Народна република Китай" на "Национален химн на Народна република Китай".
|