Solr-Query mit LIKE-Klausel
Arbeite ich mit Solr und ich würde gerne wissen, ob es möglich ist, einen LIKE-Klausel in der Abfrage. Zum Beispiel möchte ich wissen, alle Organisationen, die mit "New York" im Titel. In SQL wäre dies so geschrieben werden Namen WIE 'New York,%'.
Meine Frage - wie schreibt man eine Abfrage WIE in Solr?
Ich bin mit dem SolrNet Bibliothek, ob das einen Unterschied macht.
können Sie überprüfen, stackoverflow.com/questions/3088401/...
InformationsquelleAutor Mark Meisel | 2012-01-17
Du musst angemeldet sein, um einen Kommentar abzugeben.
Du nur nach "New York", aber zuerst müssen Sie richtig konfigurieren Sie Ihre field analyzer. Zum Beispiel möchten Sie vielleicht beginnen mit einem Feld-Typ wie
text_general
im Sinne der Standard-Solr-schema. Dieser Feldtyp wird die tokenisierung auf Leerzeichen und andere gängige Trennzeichen, dann einen filter anwenden, der Stoppwörter, dann Kleinbuchstaben, die Bedingungen, um zu machen, sucht groß-und Kleinschreibung.Mehr Informationen über Analysatoren in das Solr wiki.
wenn ich analysieren in Solr admin, funktioniert es, aber wenn ich die Suche im Admin - > Query es nicht
InformationsquelleAutor Mauricio Scheffer
Wenn Sie solr 3.1 oder höher, haben Sie einen Blick auf die
Extended DisMax Query Parser
, die unterstützt Abfragen mit Platzhaltern. Sie können es mit<str name="defType">edismax</str>
in der request-handler Konfiguration.Dann kannst du eine Abfrage verwenden, wie
title:New York*
mit dem gleichen Verhalten wie eine Abfrage mit like-Klausel. Der wesentliche Unterschied zwischen meiner Antwort und der akzeptiert ist, dass Sie können auch suchen-fragment von Wörtern mit Platzhaltern. Zum BeispielNew Yorkers
würde passen in diesem Fall.Leider könnten Sie haben Probleme mit case-sensitive Abfragen, auch wenn Sie mit einem
LowerCaseFilterFactory
. Haben Sie einen Blick hier mehr wissen. Die meisten dieser Probleme behoben werden, mit dem solr 3.6-release seit der SOLR-2438 Problem wurde gelöst.InformationsquelleAutor javanna