当我对术语“3.5mm”执行BooleanQuery搜索时,我没有得到任何搜索结果。 “。”不是一个特殊的角色,所以我不明白为什么它不起作用。有一个简单的解决方法吗?
如果我使用通配符令牌(即3 * 5mm),我可以找到搜索词,但当然这也会返回许多不需要的结果。
innerQuery = new BooleanQuery();
foreach (string term in terms)
{
innerQuery.Add(new TermQuery(new Term(field, term)), Occur.MUST);
}
var parser = new MultiFieldQueryParser(Version.LUCENE_30, searchFields, analyzer);
IEnumerable<ScoreDoc> hits = indexSearcher.Search(booleanQuery, null, hits_limit, Sort.RELEVANCE).ScoreDocs;
IEnumerable<T> results = MapLuceneToDataList(hits, indexSearcher);