2010-04-15 9 views
7

He implementado lucene para mi aplicación y funciona muy bien a menos que haya introducido algo como caracteres japoneses.Lucene Búsqueda de caracteres japoneses

El problema es que si tengo una cadena japonesa は ん に こ こ こ I, y busco con こ ese es el primer caracter que funciona bien, mientras que si uso más de un carácter japonés (こ ん に ち) en la búsqueda de tokens de búsqueda falla y no hay documento encontrado.

¿Se admiten caracteres japoneses en lucene? ¿Cuáles son los ajustes que se deben hacer para que funcione?

+0

Lo analizador está utilizando? –

+0

@codeka, estoy usando el StandardAnalyzer –

Respuesta

3

No creo que haya puede ser un analizador que funcionará para todos los idiomas. El problema es que los diferentes idiomas tienen reglas diferentes sobre límites de palabras y derivaciones (por ejemplo, el idioma tailandés no usa los espacios en total para separar palabras). O si lo hay, ¡ciertamente no me gustaría ser el mantenedor!

Lo que tendrá que hacer es "etiquetar" bloques de texto como un idioma u otro y usar el analizador correcto para ese idioma en particular. Puede intentar detectar el idioma "automáticamente" haciendo un análisis de caracteres (es decir, texto que utiliza predominantemente japonés Katakana es probable que sea japonés)

+0

@codeka, ¿tengo que buscar? Especifique el analayzer que se usará para ciertas palabras, por ejemplo (A-Z) para inglés y (こ - す) para japonés y luego vaya al texto suministrado para averiguar el analizador que se utilizará. –

4

El analizador integrado de lucene no es compatible con japonés.

Necesita instalar algún analizador como sen, que es el puerto de Java mecab, el analizador japonés bastante popular, y es rápido.

Hay 2 tipos sub llamados

  1. CJKAnalyzer, que apoyan chino y coreano también, y utilizando el método bi-gramo
  2. JapaneseAnalyzer, que sólo admite japonés, usando morfológica del analizador y se supone que es muy rápido.
+0

@ S.Mark, el usuario puede tener cualquier cosa en su campo de texto, ¿cómo decido qué analizador usar? ¿Hay algún analizador genérico que funcione para todos los idiomas –

+0

@Pranali, el método bi-gram sería mejor para ese caso. – YOU

+0

@ S.Mark, ¿tiene algún código de muestra o enlace para implementar el método de bi-gramas? ¿cuál es el analizador que se requiere para esto y cómo lo configuro –

0

Debe utilizar los nuevos analizadores japoneses publicados recientemente en Lucene 3.6.0. Se basan en el excelente analizador morfológico Kuromoji donado recientemente a Lucene en el LUCENE-3305.

Docs son un poco escaso partir de este escrito, así que aquí están algunas más enlaces ...

  • Si utiliza Solr, aquí hay un sample schema que funcionará en Websolr.
  • Diapositivas desde mi presentation en la reunión de herokujp del 20 de abril de 2012, en la búsqueda de texto completo con énfasis en el análisis del japonés.

(Todo esto es para la versión Java de Lucene.)

Cuestiones relacionadas