如何在lucene中执行通配符搜索包含特殊字符的单词。例如,我有一个像“ 91-95483534 ”的单词,如果我搜索“ 91 * ”它的工作原理,如果我搜索像“91-95483534”也工作正常。但我的Senario是搜索“ 91-9548 * ”。如果我这样表演“ 91-9548 * ”。我没有输出。我错过了什么。我的实际代码如下:
MultiFieldQueryParser queryParser = new MultiFieldQueryParser(new string[] {"column1","column2"}, new StandardAnalyzer());
queryParser.SetAllowLeadingWildcard(true);
Query query = queryParser.Parse(QueryParser.Escape(strKeyWord) + "*");
答案 0 :(得分:1)
当您使用StandardAnalyzer时,如果您在索引时使用了INDEX_ANALYZED,则将您的单词索引为91和95483534 .... 如果要搜索为91-9548 *,则在索引具有“91-95483534”作为术语的指定字段时使用INDEX_NOT_ANALYZED