2016-07-25 20 views
2

Ich verwende Solr 6.1.0, und ich indizieren Eltern-Kind-Daten in Solr.Solr Block Join übergeordnete Abfrage Parser Bereich Abfrage Suchfehler

Wenn ich meine Abfrage tue, verwende ich den Parent Parser für Parent Parser für Block Parent, um nur die Datensätze des Parents zurückzugeben und nicht alle untergeordneten Datensätze, auch wenn im untergeordneten Datensatz eine Übereinstimmung vorhanden ist.

Ich bin jedoch nicht in der Lage, die Bereichsabfrage für den untergeordneten Datensatz auszuführen. Zum Beispiel, wenn ich mit dieser Abfrage q = + Titel suchen: Werden Sie Mitglied + {Eltern, die = "content_type: parent"} range_f: [2 bis 8]

werde ich die folgende Fehlermeldung erhalten:

{ 
    "responseHeader":{ 
    "zkConnected":true, 
    "status":400, 
    "QTime":3}, 
    "error":{ 
    "metadata":[ 
     "error-class","org.apache.solr.common.SolrException", 
     "root-error-class","org.apache.solr.parser.ParseException"], 
    "msg":"org.apache.solr.search.SyntaxError: Cannot parse 'range_f:[2': Encountered \"<EOF>\" at line 1, column 18.\r\nWas expecting one of:\r\n \"TO\" ...\r\n <RANGE_QUOTED> ...\r\n <RANGE_GOOP> ...\r\n ", 
    "code":400}} 

Was könnte das Problem hier sein?

Grüße,
Edwin

+1

Ich bin auch mit dem gleichen Problem konfrontiert, wenn verwendet verbindet mit OR für mehrere Bedingungen – Sai

+0

haben Sie keine Lösung für diese gefunden – Sai

+0

@Sai wie wäre es, haben Sie eine Lösung gefunden? :) – eglasius

Antwort

0

Versuchen mit:

q = + Titel: Werden Sie Mitglied + _query: "{Eltern which = \" content_type: parent \ "} range_f: [2 bis 8] "

0

Sie können keine Leerzeichen haben, bevor die Join-Abfrage, so würde dies

{!parent which="content_type:parentDocument"}range_f:[2 TO 8] 

Eine Möglichkeit arbeiten, dies zu umgehen ist die Bereichsabfrage zu bewegen zu dem fq-Parameter anstelle des q-Parameters.