2011-03-10 10 views
5

Tôi đang cố gắng lọc với fq cho các trường có ký tự đặc biệt, đặc biệt là dấu ngoặc đơn. Ví dụ: được cung cấp tài liệu:Ký tự đặc biệt trong bộ lọc Solr fq

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

Tôi muốn làm ví dụ: ?fq:town_snc=Hartford (Connecticut)

Tôi không nhận được bất kỳ kết quả nào; Tôi đoán rằng các dấu ngoặc đơn cần phải được thoát, nhưng tôi không thể tìm ra phương pháp thoát.

Cảm ơn bạn!

Trả lời

13

Sử dụng "lĩnh vực" qparser cho phép bạn không cần phải làm bất cứ thoát:

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

Hoặc bạn có thể sử dụng phân tích cú pháp truy vấn Lucene bình thường và sử dụng dấu ngoặc kép (nhưng sau đó bạn vẫn phải thoát khỏi một số thứ như báo giá)

fq=town_snc:"Hartford (Connecticut)" 

Hoặc bạn cũng có thể sử dụng dấu gạch chéo ngược (chỉ cần nhớ thoát khỏi không gian).

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