2011-11-22 203 views
7

在solr我想要搜索一個字段與負數如nodeId:-1。 在schema.xml中,我定義這樣的: <字段名= 「節點ID」 類型= 「INT」 索引= 「真」 存儲= 「真」/>如何搜索solr中的負數?

solr的拋出錯誤時使用「節點ID: - 1「來搜索是這樣的: org.apache.lucene.queryParser.ParseException:無法解析'storeId:-1':遇到」「 - 」「 - 」「在第1行,第8列。期待以下之一:」( 「...」*「... ... ... ...」[「...」{「... ...

我必須用storeId進行搜索:\ - 1或storeId:「 - 1」得到答案

現在的問題是: 我可以修改任何solr配置文件搜索沒有任何轉義字符?或者另一種方法來解決這個問題而不用修改java代碼。 謝謝。

回答

2

「 - 」是查詢解析器的特殊字符,用於將某些子句標記爲禁用。如果你不想逃避這個角色,你需要改變你的查詢解析器。

您可能想試試raw query parserq={!raw f=nodeId}-1,但它沒有默認查詢分析器的功能。實際上,原始查詢解析器只允許您運行純粹的術語查詢。