2017-08-09 5 views
0

Ich möchte eine bestimmte 2 Felder in solr abfragen. Nehmen wir an, ich habe "Beschreibung" und "Keywords". Jetzt möchte ich für "dogs" or "cats", indem Sie diese suchen:Solr, Wildcard-Abfrage für bestimmtes Feld ignorieren

q=dog* OR cat* 

ich vorbei auch die Felder durchsucht werden:

qf=description^1 keywords^1 

So weit so gut. Jetzt möchte ich "Beschreibung" haben, um die Platzhalter zu ignorieren, damit die Suche leistungsfähiger ist. Gibt es eine Möglichkeit, dies in den Feldtypen oder in der Abfrage selbst zu tun?

Antwort

1

ja, na ja, nicht genau das, aber Sie können die gleiche Funktionalität, während gleichzeitig die Leistung zu gewinnen bekommen:

  1. unterschiedliche Nutzungsanalyse für die Beschreibung und Keywords. Verwenden Sie in Schlüsselwörtern eine EdgeNGramFilterFactory. Dies kann Ihnen die gleiche Funktionalität wie der *, aber mit viel besser perf (auf Kosten eines größeren Index, aber es ist es wert!).

  2. In der Beschreibung, nur nicht den Ngram-Filter, und teilweise Übereinstimmungen werden nicht gefunden.