【发布时间】:2015-11-18 03:04:30
【问题描述】:
我正在尝试对更广泛的多词查询中的选定字段实施模糊查询。例如,假设字段为name 和email。 我想对姓名进行模糊搜索,但我只想在 email 字段上完全匹配。
目前,我这样构造解析器(这是使用 FlexLucene,所以这实际上是在 C# 中,但它应该与常规 Java Lucene 完全对等):
var parser = new MultiFieldQueryParser(fields, analyzer);
其中fields 是包含{"name", "email"} 的string[],analyzer 是StandardAnalyzer,与索引时使用的相同。
所以我的目标是:像“smith”这样的查询字符串应该会导致命中{ 'name': 'Harry Smith', 'email': 'harry@where.com' }、{ 'name': 'Tom Smythe', 'email': 'tom@tom.com' } 和{ 'name': 'Sara Jones', 'email': 'smith@xyz.com' },而不是{ 'name': 'Tom Jones', 'email': 'smythe@abc.com' }。
【问题讨论】: