Substring Spiele innerhalb SOLR
Frage
Ich kann nicht scheinen, um herauszufinden, wie man mit SOLR Teilzeichenübereinstimmungen zu finden, ich habe Streichhölzer heraus auf einem Präfix basiert, so dass ich Schinken bekommen Hamburger entsprechen.
Wie würde ich eine Suche nach ‚Burger‘ Hamburger als auch passen? Ich habe versucht, Burger aber einen Fehler geworfen '*' oder '?' nicht als erstes Zeichen in WildcardQuery erlaubt.
Wie kann ich Substrings mit SOLR Vorstellungen?
Lösung
Sie können dies ermöglichen, aber es wird sehr hungrig werden Ressourcen (zum Beispiel für SuffixQuery suchen).
Siehe auch: http: //lucene.472066.n3 .nabble.com / Leading-Wildcard-Search-td522362.html
Zitiert die Mailingliste: Arbeitsarounds? Stellen Sie sich einen zweiten Index zu machen (oder das Hinzufügen eines weiteren Feldes) mit allen Bedingungen rückwärts buchstabiert.
=>
Siehe unten ReverseStringFilter https://issues.apache.org/jira/browse/ LUCENE-1398
und Support für die effiziente führenden Platzhalter suchen: https://issues.apache.org / jira / browse / SOLR-1321
Im Moment issues.apache.org scheint nach unten. Versuchen Sie zum Beispiel zu verwenden, Google-Cache.
Andere Tipps
Wenn jemand landet hier nach der Suche nach „apachesolr String“, gibt es eine einfachere Lösung für diese: https: // Drupal .stackexchange.com / a / 27956/10419 (von https://drupal.stackexchange.com/questions/26024/how-can-i-make-search-with-a-substring-of-a-word )
In ngramfilter auf Texttypdefinition in schema.xml in solr Config Verzeichnis.
<fieldType name="text" class="solr.TextField" positionIncrementGap="100">
<analyzer type="index">
<filter class="solr.EdgeNGramFilterFactory" minGramSize="3" maxGramSize="25" />
Wie bereits erwähnt, bevor in Link Sie können führende Platzhalter mit edismax (ExtendedDismaxQParser) verwenden. Probieren Sie es einfach zu sehen, ob es schnell genug ist.
Einige weitere Informationen über die oben genannten reversedstring kann auch hier bestellt werden: solr.ReversedWildcardFilterFactory