lucene查询特殊字符
我无法理解lucene中特殊字符的处理。lucene查询特殊字符,lucene,special-characters,Lucene,Special Characters,我无法理解lucene中特殊字符的处理。 我的分析器没有停止字,因此不会删除特殊字符: CharArraySet stopwords = new CharArraySet(0, true); return new GermanAnalyzer(stopwords); 然后我创建了如下文档: doc.add(new TextField("tags", "23", Store.NO)); doc.add(new TextField("tags", "Brüder-Grimm-Weg", Sto
我的分析器没有停止字,因此不会删除特殊字符:
CharArraySet stopwords = new CharArraySet(0, true);
return new GermanAnalyzer(stopwords);
然后我创建了如下文档:
doc.add(new TextField("tags", "23", Store.NO));
doc.add(new TextField("tags", "Brüder-Grimm-Weg", Store.NO));
查询标记:brüder \-g工作正常,但模糊查询标记:brüder \-g不会返回任何内容。当街道名称为Eselgasse时,查询标记:Esel~可以正常工作。我使用lucene 5.3.1 谢谢你的帮助 QueryParser不分析模糊查询(以及通配符或正则表达式查询) 例如,如果您使用的是StandardAnalyzer,“Brüder Grimm Weg”将被索引为三个术语,“Brüder”、“Grimm”和“Weg”。因此,经过分析,您有:
-->“标签:brüder \-g”
标签:brüder标签:g
这与标记匹配:brüder
-->“标签:brüder-g~”
标签:brüder-g~2
由于未对其进行分析,因此它仍然是一个术语,并且您没有匹配项,因为您的索引中没有像“brüder-g”这样的单个术语