2016-08-08 16 views
1

Ich benutze Apache Solr als meine semantische Suchmaschine. In denen Benutzer nichts eingeben können und ich relevante Ergebnisse mit Worten abrufen muss.Apache Solr Tokenizers

Ich möchte Zeichenfolge in Tokens aufteilen.

Example: "actorsfrommumbai" -> "actors from mumbai" 

Wie kann ich diese Funktion in solr erreichen?

+0

Mögliches Duplikat von [Wie ein Wort mit zwei Wörtern ohne Leerzeichen token] (http://stackoverflow.com/questions/25153480/how-to-token-a-word-which-combined-by-zwei -words-whitespace) – MatsLindh

+0

Danke für die Antwort aber Dies ist ein Tokenizer, der ein Feld als Eingabe erhält, während Daten in solr geladen werden. Was mache ich bei der Suche nach ** actorsinmumbai **? Wie kann ich string teilen, wenn ein User nach ** actorsinmumbai ** sucht? Dies ist eine Abfragezeit Filtration –

+0

Haben Sie _actually_ die vorgeschlagene Methode versucht? Der Filter wird die Token in mehrere Token teilen, einen für jeden Teil des Wortes. Sie können verschiedene Filtersequenzen für die Indizierung und Abfrage angeben, indem Sie die Parameter 'index' und 'query' für die Definition der Analysekette verwenden. – MatsLindh

Antwort

0

Es besteht die Möglichkeit, den Analyzer für die Dekomprimierung anhand des mitgelieferten Wörterbuchs zu konfigurieren. Sie müssen Analysator etwas wie diese konfigurieren

<analyzer> 
<tokenizer class="solr.StandardTokenizerFactory"/> 
<filter class="solr.DictionaryCompoundWordTokenFilterFactory" 
dictionary="abc.txt"/> 
</analyzer> 

abc.txt ist das Wörterbuch.

Beachten Sie, dass der Analysator sowohl bei der Index- als auch bei der Abfragezeit angewendet wird.