In Solr, Wie die Abfrage für ein Feld für verschiedene Werte in einem mehrwertigen Feld

Ich wollen im Grunde Solr Suche, jeden Datensatz der das mehrwertige Feld für meine such-parameter.. Lesen Sie weiter für mein Beispiel:

Bin ich mit dem Solr index zu meine Daten. Ich habe die Anwendung Daten in parallelen arrays (in form von multi-valued fields) passend zu einem bestimmten Produkt. Siehe Folgendes Beispiel, wo Marke, Modell und Jahr sind mehrwertige Felder:


<-solr record start->
sku: 1234
make: acura, acura, acura
model: integra, rsx, rsx
year: 1997, 2004, 2000
engine: 3.4, 4.5, 4.5
<-solr record end->

Ich bin mit filter, Abfragen (&fq=) zu schmal meiner Auswahl. Das problem ist, wenn jemand sucht eine 2000 Acura Integra, es wird mit dem obigen Datensatz, aber da die Marke, Modell und Jahr Daten parallel kodiert, es gibt tatsächlich keine 2000 Acura Integra für dieses Produkt. Solr ist das matching der stellen in das Feld, das Modell in das Modell-Feld, und das Jahr, in dem Feld Jahr (wie es sollte) und die Rückkehr dieses Ergebnis respektieren und nicht mein Parallelität.
Meine Abfrage würde wie folgt Aussehen so weit:


fq=make:"acura"&fq=model:"integra"&fq=year:2000 (I would normally escape URL characters when I POST to Solr, this is just an example)

Also meine Lösung ist, erstellen Sie ein anderes mehrwertiges Feld, genannt die Zusammenfassung Feld,in dem ich alle Marke, Modell, Baujahr und andere Daten (wie Motor) zusammen, getrennt durch ein Leerzeichen. Es ist notwendig, um Anführungszeichen um die Worte, also Begriffe mit mehreren Wörtern nicht übereinstimmen-Suche-Parameter versehen. Das obige Beispiel würde nun so Aussehen:


<-solr record start->
sku: 1234
make: acura, acura, acura
model: integra, rsx, rsx
year: 1997, 2004, 2000
engine: 3.4, 4.5, 4.5
summary: "acura" "integra" "1997" "3.4", "acura" "rsx" "2004" "4.5", "acura" "rsx" "2000", "4.5"
<-solr record end->

Ich dann auf meine Abfrage die folgenden:


summary:(""acura" AND "integra" AND "2000")

Ich würde erwarten, dass, wenn ich Hinzugefügt, dass auf meine Anfrage, dass dieser Satz würde nicht mehr kommen, da es kein acura integra 2000 in der Zusammenfassung Bereich. Jedoch, diese doens T Arbeit. Der Rekord noch kommt. Ich bin ratlos. Hat jemand eine Lösung für dieses problem. Es wurde mich zu töten, für Tage.

Ich wollen im Grunde Solr Suche, jeden Datensatz der das mehrwertige Feld für meine such-parameter.. ist das möglich? Gibt es eine bessere Weise, das zu tun, was ich versuche zu tun?

Dank

InformationsquelleAutor Dan | 2010-02-11

Schreibe einen Kommentar