匹配查询时返回Lucene字段名称

时间:2011-06-16 06:43:45

标签: java lucene

所以我在Lucene 3.0.2中使用MultiFieldQueryParser,并且我已经给它多个字段。我想找出哪个字段与查询匹配;我在这里搜索过,一位用户说绝对没办法做到这一点。这是真的吗?如果是这样,有人可以推荐一种绕过这个或另一个允许我这样做的系统吗?

我可以将整个文档放在一个字段中,例如“内容”,但我认为这会使问题更严重。

我想用例如Brad查询数据库,看看查询是来自电影名称,演员姓名,导演姓名等等。

谢谢

1 个答案:

答案 0 :(得分:0)

我强烈建议使用带有stnadard QueryParser的BooleanQuery:

BooleanQuery booleanQuery = new BooleanQuery();

FuzzyQuery field1Query = new FuzzyQuery(new Term("field1", searchTerm), 0.3f, 1, 10);
FuzzyQuery field2Query = new FuzzyQuery(new Term("field2", searchTerm), 0.3f, 1, 10);

booleanQuery.add(field1Query , BooleanClause.Occur.SHOULD);
booleanQuery.add(field1Query , BooleanClause.Occur.SHOULD);

通过这种方式,您可以精确搜索所需的字段,并对其进行调整以产生微调结果。假设这是你的最终目标。

相关问题