在Lucene中,使用标准分析器,我想创建具有空格和特殊字符的字段可搜索

时间:2010-03-29 19:55:06

标签: lucene

在Lucene中,使用标准分析器,我想创建可搜索空格和特殊字符(下划线,!,@,#,....)的字段。

我将IndexField设置为NOT_ANALYZED_NO_NORMS和Field.Store.YES

当我在LUKE中查看我的索引时,字段就像我预期的那样,值如:

'SKU Number',但当我搜索'SKU'或'SKU *'时,没有任何内容出现。

我错过了什么?

2 个答案:

答案 0 :(得分:1)

搜索“SKU”将无效,因为您使用NOT_ANALYZED索引; 'SKU Number'是整个索引术语。如果你想要用空格分割的单词,那就是ANALYZED的用途。

现在进行前缀搜索“SKU *”将起作用,但默认情况下lucene QueryParser会降低扩展术语。将解析器上的lowercaseExpandedTerms设置为False。

答案 1 :(得分:0)

Field.Store.YES不会影响此字段的搜索行为。我将IndexField设置为NOT_ANALYZED。

尝试使用KeywordAnalyzer分析器在Luke上使用全字段文本'SKU Number'进行搜索。