在Lucene中,使用标准分析器,我想创建可搜索空格和特殊字符(下划线,!,@,#,....)的字段。
我将IndexField设置为NOT_ANALYZED_NO_NORMS和Field.Store.YES
当我在LUKE中查看我的索引时,字段就像我预期的那样,值如:
'SKU Number',但当我搜索'SKU'或'SKU *'时,没有任何内容出现。
我错过了什么?
答案 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'进行搜索。