所以我在Lucene 3.0.2中使用MultiFieldQueryParser,并且我已经给它多个字段。我想找出哪个字段与查询匹配;我在这里搜索过,一位用户说绝对没办法做到这一点。这是真的吗?如果是这样,有人可以推荐一种绕过这个或另一个允许我这样做的系统吗?
我可以将整个文档放在一个字段中,例如“内容”,但我认为这会使问题更严重。
我想用例如Brad查询数据库,看看查询是来自电影名称,演员姓名,导演姓名等等。
谢谢
答案 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);
通过这种方式,您可以精确搜索所需的字段,并对其进行调整以产生微调结果。假设这是你的最终目标。