2011-12-21 43 views
0

我在我的項目中使用了基於羅盤的索引。現在,在其中一個場景中,我的字段值類似'dummy#value'。因此,如果我試圖用包含'#'字符的任何值進行搜索,則返回0行。指南針在搜索查詢中用「#」(散列字符)返回0行

例如,

DummyTable

id field_name 
---------------- 
1 dummy#value 
2 otherVal1 
3 otherVal2 

查詢

+(+alias:DummyTable +field_name:dummy#value*) +(alias:DummyTable) 

返回0行,而

+(+alias:DummyTable +field_name:dummy*) +(alias:DummyTable) 

返回1行..

回答

0

我被要求註釋字段聲明爲

NOT_ANALYZED:(索引屬性的不使用的分析值,所以它可以被搜查)

@SearchableProperty(index=Index.NOT_ANALYZED) 
private String field_name; 
1

我不認爲#是一個特殊字符,所以我很驚訝這不適合你。您可以嘗試使用\#轉義角色。

另一種選擇可能是圍繞在引號

術語

好運

+0

感謝您的迴應...試圖用\#不會w ork ... with query:+(+ alias:DummyTable + field_name:dummy「#」value *)+(別名:DummyTable)它返回所有記錄,因爲一些自動索引的字段具有值,如$/uid:DummyTable# 74#,DummyTable#73#等,這意味着每當我們用「」(雙引號)包圍任何項時,它將搜索所有索引字段? – Nirmal 2011-12-27 05:26:18

+0

你是否可以不用引號括住整個詞語,即「dummy#value」? – Edd 2011-12-27 16:05:05