2016-08-24 4 views
0

Lasst uns sagen, dass ich einen Satz wie:Solr Art suchen zuerst mit AND-Operator und dann ergibt sich aus OR-Operator

Cyclone Winston Fiji Relief

Appeal und zunächst möchte ich die alle angezeigt werden Wörter in diesem Ergebnis, also im Grunde eine UND-Suche, und danach alle Ergebnisse anzeigen, die mindestens ein Wort enthalten, also eine ODER-Suche.

Ist es möglich, und wie sollte dies getan werden?

Also zuerst werde ich die Ergebnisse sehen wie:

Cyclone Winston Fiji Relief
Appeal für Cyclone Winston Fiji Relief Appeal
Appeal für Fidschi Relief Cyclone Winston
...

und dann Ergebnisse wie:

Cyclon
Widston
Appeal
Fidschi
...

Antwort

2

Solr (Lucene tatsächlich) haben keine UND-und OR-Befehle - sie sind in der Realität, sollte, und nicht für jeden Begriff. Und was Sie sagten, sollte zum Standard-SOLL-Anwendungsfall passen, was passiert, wenn Sie nichts Besonderes machen. Je mehr Begriffe übereinstimmen, desto relevanter ist es.

Also, wenn Sie das nicht bekommen, ist etwas anderes ein Problem. Sie können das Debugging aktivieren, um zu sehen, was tatsächlich passiert (obwohl es Zeit braucht, um die Ausgabe zu verstehen). Ein Szenario besteht darin, dass Sie eDisMax verwenden und mehrere Felder mit Übereinstimmungen aus verschiedenen Quellen durchsuchen. Dann wird nur die beste Feldübereinstimmung verwendet und andere Übereinstimmungen werden schattiert. Die tie Parameter kann dabei helfen.

0

Wenn Sie nicht zufrieden mit der aktuellen Relevanz Mechanismus sind, können Sie diese Steigerung der Inhalte durch die Nähe verbessern. Mit eDismax suchen Sie nach pf und ps Parameter wie in this wiki erläutert. Zum Beispiel, wenn Sie ein Feld namens Text abfragen, würde Ihre Abfrage wie folgt aussehen:

http://localhost:8983/solr/<YOUR_COLLECTION>/select?defType=edismax&q=Cyclone Winston Fiji Relief Appeal&pf=text&qf=text^3&ps=10 

Wenn die Phrase Abfrage von 3 gesteigert werden (bitte ein Gewicht für Ihre Bedürfnisse geeignete wählen) und 10 ist die Slop (auch hier wählen Sie Ihren Slop).