Was ist eine Schindel in der Lucene-Sprache?

Hin und wieder werden wir gefragt, was zum Teufel ein Shingle in Lucene ist, wie z.B. der ShingleFilter oder der ShingleMatrixFilter. Es lohnt sich also, einige Informationen über Shingles in Lucene, Solr und Lucidworks zu geben. Zunächst einmal ist ein Shingle nur ein wortbasiertes n-Gramm, im Gegensatz zu einem zeichenbasierten n-Gramm (NGramTokenizer, NGramTokenFilter, EdgeNGramTokenizer und EdgeNGramTokenFilter bieten letztere Funktionalität). Wir haben sie Schindeln genannt, um die beiden zu unterscheiden, wenn es um die Benennung der Filter geht, und weil sie sich, wie die Schindeln auf Ihrem Dach, gegenseitig überlappen.

Wozu sind Shingles gut? Viele Leute verwenden sie, um während des Indizierungsprozesses „Pseudo-Phrasen“ zu erstellen, da die Schindel am Ende ein einzelnes Token ist, das dann der normalen TF-IDF-Bewertung unterliegt, die in Lucene verwendet wird. In vielen Fällen führt die Suche nach Phrasen zu einer Verbesserung der Relevanz, aber die Suche nach Phrasen zur Abfragezeit kann teurer sein als normale Begriffsabfragen, so dass man manchmal versucht, dem Spiel einen Schritt voraus zu sein und Schindeln zu verwenden.

Wenn Sie Shingles in Aktion sehen und sie mit n-Grammen vergleichen möchten, fügen Sie die folgenden Feldtypen zu einem Solr-Beispielschema hinzu:

<fieldtype name="shingle">
 <analyzer>
 <tokenizer class="solr.WhitespaceTokenizerFactory"/>
 <filter class="solr.ShingleFilterFactory" minShingleSize="2" maxShingleSize="5"/>
 </analyzer>
 </fieldtype>
 <fieldtype name="ngram">
 <analyzer>
 <tokenizer class="solr.NGramTokenizerFactory" maxGramSize="5" minGramSize="2"/>
 </analyzer>
 </fieldtype>

Starten Sie als nächstes Ihre Solr-Instanz und gehen Sie zu http://localhost:8983/solr/admin/analysis.jsp und führen Sie die folgenden Schritte aus:

  1. Wählen Sie in der Zeile Feld die Option „Typ“ aus der Dropdown-Liste und geben Sie Schindel in das Textfeld ein.
  2. Wählen Sie im Abschnitt Feldwert die Option Ausführliche Ausgabe und geben Sie „Der schnelle rote Fuchs sprang über die faulen braunen Hunde“ ein.
  3. Klicken Sie auf Absenden. Sie sollten etwas sehen wie:

Gürtelrose

Wie Sie sehen können, werden für jede Position mehrere Token ausgegeben, von denen viele mehrere Wörter in einem einzigen Token enthalten.

Versuchen Sie als Nächstes denselben Satz, aber wechseln Sie beim Feldtyp von „shingle“ zu „ngram“. Diesmal sollten Sie die Wörter in Zeichengruppen aufgeteilt sehen.

Weitere Informationen finden Sie unter http://en.wikipedia.org/wiki/N-gram. Beachten Sie, dass auch der Ngram Viewer von Google Book für Sie interessant sein könnte: http://ngrams.googlelabs.com/

Share the knowledge

You Might Also Like

Agentischer Handel ist da. Ist Ihre Marke bereit?

KI-Assistenten werden immer mehr zum ersten Schritt bei der Entdeckung des Handels....

Read More

Hybride Suche für den B2B-Handel erklärt

Die hybride Suche hat sich zu einem der wichtigsten Bausteine in der...

Read More

Wie Sie feststellen können, ob Ihre B2B-Produktentdeckungsreise tatsächlich funktioniert

Eine funktionierende B2B-Produkterkennung löst zuverlässig Tippfehler, Teilenummern, Synonyme und Attributabfragen und unterstützt...

Read More

Quick Links