2015-06-18 15 views
5

Ich versuche, genau passend zu machen solr Rückkehr auf Vorschlag ab:Solr vorschlagen genaue Übereinstimmung

  • spellcheck.q = tota zurückkehrt insgesamt in Ergebnisse aber
  • spellcheck.q = Insgesamt gibt nicht zurück in den Ergebnissen.

Ich verwende dieses Feld für Anregungen:

<fieldType name="textSpellShingle" class="solr.TextField" positionIncrementGap="100"> 
    <analyzer> 
    <tokenizer class="solr.StandardTokenizerFactory"/> 
    <filter class="solr.LowerCaseFilterFactory"/> 
    <filter class="solr.ShingleFilterFactory" maxShingleSize="3" outputUnigrams="true"/> 
    <filter class="solr.RemoveDuplicatesTokenFilterFactory"/> 
    </analyzer> 
</fieldType> 

Irgendeine Idee, wie man Solr auf vorschlagen exakte Treffer gibt ??

+0

der Analysator für die Indizierung und Quering ist das gleiche verwendet wird? –

+0

ja gleicher Analysator. – user3687679

+0

Ersetzen Sie die "StandardTokenizerFactory" durch "KeywordTokenizerFactory" –

Antwort

0

können Sie versuchen, mit diesem

<fieldType name="textSpellShingle" class="solr.TextField" positionIncrementGap="100"> 
    <analyzer> 
    <tokenizer class="solr.StandardTokenizerFactory"/> 
    <filter class="solr.LowerCaseFilterFactory"/> 
    <filter class="solr.EdgeNGramFilterFactory" minGramSize="2" maxGramSize="50" side="front"/> 
    <filter class="solr.EdgeNGramFilterFactory" minGramSize="2" maxGramSize="50" side="back"/> 
    </analyzer> 
</fieldType> 
+0

keine Vorschläge überhaupt! – user3687679

+0

und mein letzter Versuch ist hier :) –

+0

danke :). funktioniert aber auch nicht. – user3687679

0

Wie in dieser Wiki-Seite erwähnt: https://cwiki.apache.org/confluence/display/solr/Suggester

To be used as the basis for a suggestion, the field must be stored.

Stellen Sie sicher, Ihr Feld gespeichert ist. Ihr Feld wird nicht gespeichert, daher werden die Daten zurückgegeben, die von Ihrem Indexer geknackt wurden.

+0

mein Feld ist gespeichert. – user3687679

+0

Sie sollten versuchen, Ihren Index mit Luke zu öffnen (https://code.google.com/p/luke/). Sehen Sie sich das gespeicherte Feld an und stellen Sie sicher, dass es korrekt angezeigt wird. Lass mich wissen wie es aussieht. –

1

Sie verwenden die Komponente SpellChecker, die, wie der Name schon sagt, für die Rechtschreibprüfung gedacht ist. Es gibt Vorschläge zurück, wie der Eintrag geschrieben werden soll. Wenn das Wort richtig geschrieben ist (was einer genauen Übereinstimmung entspricht), gibt es nichts zurück, weshalb Sie das Wort in der Liste nicht sehen.

Seit Solr 4.7 wurde eine neue Suggestion-Komponente hinzugefügt, die tatsächlich für Autosuggestion implementiert ist und die erwarteten Ergebnisse liefert.

-1

Ihr Problem kam, weil Sie die alte Vorschlagskomponente basierend auf der Rechtschreibprüfungskomponente verwendet haben (ich nehme an, dass Sie eine Version von solr vor 5 verwendet haben).

Mit der alten Rechtschreibprüfung/vorschlagen, wenn das Wort übereinstimmt, ist es nicht in der Antwort zurück!

Testen Sie mit der solr.suggestComponent (falls in Ihrer Version vorhanden).

sehen: https://cwiki.apache.org/confluence/display/solr/Suggester

+0

Vergessen Sie nicht, Ihre spellcheck.q durch suggest.q in Ihrer Anfrage zu ändern, wenn Sie den neuen Vorschlag verwendet haben – Nono

Verwandte Themen