3 Stimmen

Solr-Indizierung, Stemming der Suche

Ich habe ein Problem, bei dem ich einen Index für eine Reihe von Personaldatensätzen habe. Der Volltextindex basiert auf dem Namen und der Position der Person.

Ich kann problemlos nach einem Namen wie "john" und einem Teil eines Namens wie "anthon" suchen, und das funktioniert.

Einige Namen werden jedoch nicht korrekt gesucht, z. B. "anthony" liefert keine Ergebnisse, aber "anth" liefert alle Anthony's. Auch die Suche nach "carly" ergibt nichts, "car" hingegen schon.

2voto

Jayendra Punkte 51779

Wie Maurico bereits sagte, wird Stemming für Personennamen nicht empfohlen.
Stemming würde zumindest bei Personennamen zu vielen unerwarteten Ergebnissen führen.

Es wäre auch interessant, Ihre schema.xml und die angewandte Feldanalyse zu überprüfen.

Dieses Problem kann auftreten, wenn Sie unterschiedliche Analysen zur Index- und Abfragezeit verwenden.

En http://wiki.apache.org/solr/AnalyzersTokenizersTokenFilters#Analyzers

Analyzer sind Komponenten, die Eingabetext zur Indexzeit vorverarbeiten und/oder zur Suchzeit. Es ist wichtig, die gleichen oder ähnliche Analysatoren zu verwenden, die den Text zur Index- und Abfragezeit auf kompatible Weise Zeit verarbeiten. Wenn zum Beispiel ein Indizierungsanalysator Wörter kleingeschrieben hat, dann sollte der Abfrageanalysator dasselbe tun, um das Auffinden der indizierten Wörter zu ermöglichen.

Aus dem von Ihnen genannten Beispiel geht hervor, dass Sie das Feld zur Indexzeit mit Stemmer versehen haben, was jedoch bei der Analyse zur Abfragezeit nicht der Fall zu sein scheint.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X