罗盘在搜索查询中返回0行,带有“#”(哈希字符)

时间:2011-12-21 13:08:24

标签: java lucene indexing compass-lucene

我在项目中使用基于罗盘的索引。现在,在其中一个场景中,我的字段值类似于' dummy#value'。因此,如果我尝试使用包含'#'的任何值进行搜索字符,它返回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行..

2 个答案:

答案 0 :(得分:1)

我不认为#是一个特殊角色所以我很惊讶这不适合你。您可以尝试使用\#转义字符。

另一种选择可能是用引号括起来这个术语

祝你好运

答案 1 :(得分:0)

我被要求将字段声明注释为

NOT_ANALYZED :(不使用分析器索引属性的值,因此可以搜索它)

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