2017-12-20 3 views
0

Können Sie OR-Abfragen für bestimmte Felder erstellen? Zum Beispiel könnten Sie (main_ref_number_tesim:(1920.1*)) OR (main_ref_number_tesim:(1920.2*)) tun?Es konnten keine beabsichtigten Ergebnisse mit "OR" in bestimmten Feldern in der normalen Abfrage abgerufen werden. Kann Solr OR-Anfragen zu bestimmten Feldern machen?

Ich habe die documentation für unsere Version (5.5) lesen und sie verwenden Beispiele ohne bestimmten Bereichen, wie zum Beispiel:

"jakarta apache" jakarta 

oder

"jakarta apache" OR jakarta 

HINWEIS: Ich bin in der Lage, die beabsichtigten Ergebnisse mit Filter zu erhalten r-Abfragen, aber mein Ziel ist es, die gleichen Ergebnisse mit einer normalen Abfrage zu erhalten. Der fq, der funktioniert, ist main_ref_number_tesim:(1920.1* 1920.2*).


EDIT1: Die regelmäßigen Abfragen habe ich versucht, die funktionieren sollte, aber nicht funktionieren, sind:

  1. (main_ref_number_tesim:(1920.1*)) OR (main_ref_number_tesim:(1920.2*))
  2. main_ref_number_tesim:(1920.1* OR 1920.2*)
  3. main_ref_number_tesim:(1920.1* 1920.2*)
+0

Ja, das sollte funktionieren. 'main_ref_number_tesim: (1920.1 * OR 1920.2 *)' sollte auch funktionieren. Was hast du versucht, das funktioniert nicht? – MatsLindh

+0

@MatsLindh richtig? Ich habe die Abfragen hinzugefügt, die ich bereits in EDIT1 probiert habe, hoffe es hilft. – RudyOnRails

+0

Nun, es hängt auch vom Typ des Feldes ab - wenn Sie einen Tokenizer haben, der sich auf '.' teilt (wie der Standardtokenizer, iirc), werden Sie bei der Platzhaltersuche niemals _any_ Übereinstimmungen bekommen, aber dann ist das seltsam Die Filterabfrage funktioniert. Eine Filterabfrage und eine reguläre Abfrage sind identisch, aber Sie verwenden möglicherweise einen anderen Abfrageparser für die Verarbeitung von 'q'. – MatsLindh

Antwort

0

Ja, Sie können OR für bestimmte Felder erstellen.

@Query(value = "*:*", filters = "(keywords:(?0))") 
public Page<ENITITY> findDataByKeywords(List<String> keywords,Pageable pageable); 

Wie in obigen Code, wenn Sie die Liste von Schlüsselwörtern ODER-Operation übergeben wird durch solr auf Keywords angewendet werden.

Ich hoffe, dies wird das Problem lösen.

+1

Ich denke, diese Antwort spricht über Federdaten solr, aber geht es nicht um Solr im Allgemeinen, nicht um Federdaten? – Persimmonium

+0

Nicht sicher, wie diese Antwort zu interpretieren ist. Angenommen, es ist "Federdaten-Solr" basierend auf @ Persimmoniums Kommentar - ok, ja, ich habe es gegooglet https://projects.spring.io/spring-data-solr/. Ist das eine Art von DSL oder Programmiersprache, um mit der Solr-API zu interagieren? – RudyOnRails

Verwandte Themen