2011-03-10 14 views
5

Sto cercando di filtrare con fq per i campi con caratteri speciali, in particolare parentesi. Ad esempio, dato il documento:Caratteri speciali nel filtro Solr fq

<result name="response" numFound="1" start="0"> 
    <doc> 
    <arr name="town_snc"> 
     <str>Hartford (Connecticut)</str> 
    </arr> 
    </doc> 
</result> 

Voglio fare per es. ?fq:town_snc=Hartford (Connecticut)

Non ottengo alcun risultato; Presumo che le parentesi debbano essere sfuggite, ma non sono stato in grado di trovare il metodo di escape.

Grazie!

risposta

13

Utilizzando il qparser "campo" permette di non dover fare qualsiasi fuga:

fq={!field f=town_snc}Hartford (Connecticut) 

In alternativa è possibile utilizzare la normale parser di query Lucene e utilizzare le virgolette doppie (ma allora si deve ancora sfuggire alcune cose come virgolette)

fq=town_snc:"Hartford (Connecticut)" 

Oppure si potrebbe usare backslash fuga troppo (basta ricordarsi di sfuggire anche lo spazio).

http://wiki.apache.org/solr/SolrQuerySyntax