2010-04-15 7 views
7

Я реализовал lucene для своего приложения, и он работает очень хорошо, если вы не представили что-то вроде японских символов.Lucene Поиск японских символов

Проблема в том, что если у меня есть японская строка こ ん に ち は, и я ищу с こ, это первый символ, чем он хорошо работает, тогда как если я использую более одного японского символа (こ ん に ち) в поиске поиска токенов не удалось найти и не найдено документа.

Поддерживаются ли японские символы в lucene? какие настройки нужно сделать, чтобы заставить его работать?

+0

Какого анализатора вы используете? –

+0

@codeka, я использую StandardAnalyzer –

ответ

3

Я не думаю, что там может быть анализатором, который будет работать на всех языках. Проблема в том, что разные языки имеют разные правила о границах слов и их возникновении (например, тайский язык не использует пробелы вообще для разделения слов). Или, если есть, я, конечно, не хотел бы быть сопровождающим!

Что вам нужно сделать, это «тег» блоков текста как один или другой язык и использовать правильный анализатор для этого конкретного языка. Вы можете попытаться обнаружить язык «автоматически», выполнив анализ персонажа (т. Е. Текст с использованием преимущественно японской катакана, вероятно, японский)

+0

@codeka, мне нужно искать, чтобы определить аналайзер, который будет использоваться для определенных слов say (A-Z) для английского и (こ - す) для японского, а затем перейдите к предоставленному тексту, чтобы узнать используемый анализатор. –

4

Встроенный анализатор lucene не поддерживает японский язык.

Вам необходимо установить какой-нибудь анализатор, например sen, который представляет собой порт java mecab, довольно популярный японский анализатор и его быстрый способ.

Существует 2 типа суб называемые

  1. CJKAnalyzer, которые поддерживают китайский и корейский тоже, и с использованием метода би-граммовый
  2. JapaneseAnalyzer, которые поддерживают только японский, используя Морфологический анализатор и должен быть очень быстро.
+0

@ S.Mark, пользователь может иметь любую вещь в своем текстовом поле, как мне решить, какой анализатор использовать. Есть ли какой-то общий анализатор, который работал бы на всех языках –

+0

@Pranali, метод bi-gram был бы лучше для этого случая. – YOU

+0

@ S.Mark, есть ли у вас какой-либо пример кода или ссылки для реализации биграммного метода. что для этого требуется анализатор, и как его настроить –

0

Вы должны использовать новые японские анализаторы, недавно выпущенные в Lucene 3.6.0. Они основаны на превосходном морфологическом анализаторе Kuromoji, недавно подаренном Lucene в LUCENE-3305.

Docs немного разреженный, как это письмо, так вот еще несколько ссылок ...

  • Если вы используете Solr, вот sample schema, который будет работать на Websolr.
  • Слайды из моего presentation в галерее 20 апреля 2012 года в полнотекстовом поиске с акцентом на анализ японского языка.

(Это все для версии Java от Lucene.)