2014-04-24 10 views
5

Sto tentando di eseguire due query Lucene. Il primo funziona. Il secondo no. La mia prima interrogazione si presenta così:Lucene Query Sintassi di campo con uno spazio

level:"dangerous" 

mia seconda interrogazione si presenta così:

IP address:"11.22.333.444" 

Non ricevo un errore di query. Tuttavia, so che ci sono documenti con l'indirizzo IP corrispondente. Per questo motivo, sospetto che lo spazio tra "IP" e "indirizzo" stia causando il problema. Tuttavia, non sono un esperto di Lucene. Quindi, non sono sicuro se sono corretto in questo.

Quando guardo il mio set di risultati utilizzando postino, posso vedere un documento con un campo che assomiglia a questo:

"IP address": "11.22.333.444" 

Qualcuno può dirmi se la mia domanda è corretta? O se mi manca qualcosa?

Grazie!

risposta

6

Sì, quello spazio è il problema.

Lo spazio nel nome di un campo è consentito, ma è in conflitto con la sintassi del parser di query. Si sono essenzialmente eseguendo due sottointerrogazioni combinati come SHOULD clausole (ad esempio, un OR):

  • IP
  • address:"11.22.333.444"

Si può sfuggire lo spazio usando una barra singola prima dello spazio, come:

IP\ address:"11.22.333.444" 
+0

Sfortunatamente, non sembra funzionare. – user3469584

+1

Sospetto che ci fosse un tipo nel post originale. Il trucco è usare una singola barra per sfuggire allo spazio e poi funziona. Come in: IP \ indirizzo: ... –

Problemi correlati