2017-02-23 27 views
0

我是Solr的新手。Solr用單個圓形支架搜索不起作用

我試圖搜索包含單個圓括號'('或')'的記錄。

搜索記錄查詢如下:

q=((name: (*\(abc*))) 

上述查詢打破了Solr的搜索。

value = value.replace(/([()])/g, '\\$1'); 

可有人請幫助解決此問題:

我通過以下的正則表達式轉義字符()?

+0

基本上尋找包含帶括號的查詢。 –

+1

「打破索爾搜索」是什麼意思?崩潰,錯誤,零點擊? @Persimmonium建議的查詢很好,所以您的問題可能是您的分析器刪除了括號。通過執行'name:known \'單詞'搜索',後跟'name:known \'單詞*'來檢查。如果最後一個命中不了,你的分析器可能會刪除')'。你也可以通過GUI中的_Analysis_來完成,它會告訴你更多的信息(也許會更令人困惑)。 –

+0

正如我從你的問題所理解的,你只需要'('或')'而不是兩個。以下查詢將用於'name:* \(* OR name:* \)* NOT name:* \(* \)*' –

回答

2

我不是很好的正則表達式,所以我不能辨別什麼是發生的事情,但是這Solr的查詢應該工作:

q=name:*\(abc* 

做它沒有?

正如你所看到的in the lucene doc,如果你搜索它,你的查詢中唯一需要轉義的字符是(。)。但我理解你的例子中的所有)只是語言的一部分。