Solr Stoppwörter Magie

Meine Stoppwörter nicht wie erwartet funktioniert.
Hier ist ein Teil von meinem schema:

<fieldType name="text_general" class="solr.TextField">
    <analyzer type="index">
        <tokenizer class="solr.KeywordTokenizerFactory"/>
        <filter class="solr.StopFilterFactory" ignoreCase="true" words="stopwords.txt" enablePositionIncrements="true"/>
        <filter class="solr.LowerCaseFilterFactory"/>
    </analyzer>
    <analyzer type="query">
        <tokenizer class="solr.KeywordTokenizerFactory"/>
        <filter class="solr.StopFilterFactory" ignoreCase="true" words="stopwords.txt" enablePositionIncrements="true"/>
        <filter class="solr.LowerCaseFilterFactory"/>
    </analyzer>
</fieldType>

<fieldType class="solr.TextField" name="text_auto">
    <analyzer type="index">
        <charFilter class="solr.HTMLStripCharFilterFactory"/>
        <tokenizer class="solr.StandardTokenizerFactory"/>
        <filter class="solr.StopFilterFactory" ignoreCase="true" words="stopwords.txt" enablePositionIncrements="false"/>
        <filter class="solr.LowerCaseFilterFactory"/>
        <filter class="solr.RemoveDuplicatesTokenFilterFactory"/>
        <filter class="solr.ShingleFilterFactory" maxShingleSize="3" outputUnigrams="true" outputUnigramsIfNoShingles="false"/>
    </analyzer>
    <analyzer type="query">
        <filter class="solr.RemoveDuplicatesTokenFilterFactory"/>
        <tokenizer class="solr.StandardTokenizerFactory"/>
        <filter class="solr.StopFilterFactory" ignoreCase="true" words="stopwords.txt" enablePositionIncrements="false"/>
    </analyzer>
</fieldType>

<field name="deal_title_terms" type="text_auto" indexed="true" stored="false" required="false" multiValued="true"/>

<field name="deal_description" type="text_general" indexed="true" stored="true" required="false" multiValued="false"/>

In stopwords.txt ich habe weiter gesagt: das, ist, eine;

Auch ich habe die nächsten Daten in meinen Feldern:

deal_description - Dies ist meine Beschreibung

deal_title_terms - Das ist der deal-Titel a Bedingungen (werden aufgeteilt in den Bedingungen)

Wenn ich versuche zu suchen deal_description:

Beispiel 1: "deal_description: sein ist die m" - ich erwarte, dass das Dokument mit deal_description "Dies ist meine Beschreibung" zurückgegeben

Beispiel 2: "deal_description: ist th" - ich erwarte, dass nichts gefunden werden, weil "ist" und "die" sind Stoppwörter.

Wenn ich versuche zu suchen deal_title_terms:

Beispiel 1: "deal_title_terms: ist" - ich erwarte, dass nichts gefunden werden, weil "ist" stoppwort.

Beispiel 2: "deal_title_terms: ist der deal" - ich erwarte, dass "ist" und "das" ignoriert wird und der Begriff "Angebot" gefunden wird.

Beispiel 3: "deal_title_terms: Titel a Bedingungen" - ich erwarte, dass "a" werden ignoriert und der Begriff "Titel " Begriffe" gefunden werden.

Frage 1: Warum Stoppwörter nicht funktioniert für "deal_description" - Feld ?

Frage 2: Warum für das Feld "deal_title_terms" Stoppwörter nicht entfernt für meine Abfrage ?(Wenn ich versuche mich zu finden Titel a Bedingungen wird es nicht finden, "title Begriffe" Begriff)

Frage 3: gibt es eine Möglichkeit, zu zeigen, Stoppwörter in Suche Ergebnis aber verhindern, dass Sie suchen ? Beispiel:

Daten: Dies ist eine Coole Suchmaschine

Suchanfrage : "ist coo" -> return "Das ist cool search engine"

Suchanfrage : "ist" -> nichts zurückgeben

Suchanfrage : "Diese coll" -> return "Das ist cool search engine"

Frage 4: Wo finde ich eine detaillierte Beschreibung (vielleicht mit Beispielen), wie Stoppwörter arbeitet in solr ? Denn es sieht aus wie Magie.

  • Zu beobachten, was passiert mit Ihren Fragen, können Sie mit der solr admin Seite : yourWebsite:8983/solr/#/yourCore/analysis. Stellen Sie Ihre Abfrage, und klicken Sie auf analysieren-Werte.
  • Ich bin mit diesem tool. Mit diesem tool sehe ich, dass Stoppwörter entfernt wurden, die query analizer aus meiner Abfrage, aber ich immer noch in der Lage zu finden, "die", "ist" usw. In dem Fall, wenn ich Stoppwörter nur für meine query analizer.
  • Was ist das Feld, das Sie verwenden, um Abfragen?
  • Ich bin mit "deal_title_terms" mit, kommentierte stopFilterFactory für analyzer type="index". Nach dem Neustart solr und neuindizieren der Daten bin ich in der Lage zu finden, Zeichenfolgen wie "die". postimg.org/image/ixl40cspp
  • Wenn Sie die edismax query parser, dann können Sie Stoppwörter nur sucht - das ist zu lösen, die "sein oder nicht sein" conumdrum.
InformationsquelleAutor Alex Sylka | 2015-03-31
Schreibe einen Kommentar