2010-04-15 16 views
7

Ho implementato lucene per la mia applicazione e funziona molto bene a meno che non abbiate introdotto qualcosa come i caratteri giapponesi.Lucene Ricerca caratteri giapponesi

Il problema è che se ho stringa giapponese こ ん に ち は, こ の バ イ ネ イ で す e cerco con こ che è il primo personaggio che funziona bene mentre se io uso più di un carattere giapponese (こ ん に ち) alla ricerca di ricerca di token fallisce e non è stato trovato alcun documento.

I caratteri giapponesi sono supportati in lucene? quali sono le impostazioni da fare per farlo funzionare?

+0

Cosa analizzatore stai usando? –

+0

@codeka, sto usando StandardAnalyzer –

risposta

3

Io non credo che ci possa essere un analizzatore che funziona per tutte le lingue. Il problema è che lingue diverse hanno regole diverse sui confini delle parole e sullo stemming (ad esempio, la lingua tailandese non usa gli spazi per tutte le parole per separare le parole). O se c'è, di certo non vorrei essere il manutentore!

Quello che dovrete fare è "etichettare" blocchi di testo come una lingua o un'altra e usare l'analizzatore corretto per quella particolare lingua. È possibile tentare di rilevare la lingua "automaticamente" eseguendo l'analisi del carattere (ad esempio il testo che utilizza prevalentemente giapponese Katakana è probabilmente giapponese)

+0

@codeka, devo cercare specificare l'analizzatore da utilizzare per alcune parole dire (A-Z) per l'inglese e (こ - す) per il giapponese e quindi passare attraverso il testo in dotazione per scoprire l'analizzatore da utilizzare. –

4

L'analizzatore incorporato di lucene non supporta il giapponese.

È necessario installare alcuni analizzatori come sen, che è la porta java di mecab, analizzatore giapponese piuttosto popolare, e veloce.

Ci sono 2 tipi secondari chiamati

  1. CJKAnalyzer, che sostengono cinese e coreano troppo, e con il metodo bi-gram
  2. JapaneseAnalyzer, che supportano solo giapponese, utilizzando morfologica Analyzer e dovrebbe essere molto veloce.
+0

@ S.Mark, l'utente può avere qualsiasi cosa nel suo campo di testo come decido quale analizzatore usare. Esiste un analizzatore generico che potrebbe funzionare per tutte le lingue –

+0

@Pranali, il metodo bi-gram sarebbe meglio per quel caso. – YOU

+0

@ S.Mark, si dispone di codice di esempio o collegamento per l'implementazione del metodo bi-gram. qual è l'analizzatore richiesto per questo e come lo configuro –

0

È necessario utilizzare i nuovi analizzatori giapponesi recentemente rilasciati in Lucene 3.6.0. Si basano sull'eccellente analizzatore morfologico Kuromoji recentemente donato a Lucene in LUCENE-3305.

Docs sono un po 'scarne partire da questa scrittura, per cui qui sono un paio di link ...

  • Se si utilizza Solr, ecco una sample schema che lavorerà su Websolr.
  • Diapositive dal mio presentation al meetup herokujp del 20 aprile 2012, sulla ricerca full-text con un'enfasi sull'analisi giapponese.

(Questo è tutto per la versione Java di Lucene.)

Problemi correlati