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

Java 匹配查询时返回Lucene字段名,java,lucene,Java,Lucene,因此,我在Lucene 3.0.2中使用了多字段QueryParser,并为其提供了多个字段。我想找出与查询匹配的字段;我在这里搜索,一位用户说绝对没有办法做到这一点。这是真的吗?如果是这样的话,有谁能推荐一种方法来绕过这个或另一个系统,让我做到这一点 我可以将整个文档放在一个字段中,例如“contents”,但我认为这会使问题变得更糟 我想查询一个数据库,例如Brad,并查看查询是否来自电影名、演员名、导演名等 谢谢我强烈建议将BooleanQuery与stnadard QueryParser

因此,我在Lucene 3.0.2中使用了多字段QueryParser,并为其提供了多个字段。我想找出与查询匹配的字段;我在这里搜索,一位用户说绝对没有办法做到这一点。这是真的吗?如果是这样的话,有谁能推荐一种方法来绕过这个或另一个系统,让我做到这一点

我可以将整个文档放在一个字段中,例如“contents”,但我认为这会使问题变得更糟

我想查询一个数据库,例如Brad,并查看查询是否来自电影名、演员名、导演名等


谢谢

我强烈建议将BooleanQuery与stnadard QueryParser结合使用:

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);
通过这种方式,您可以精确地对所需的字段执行搜索,并对其进行调整以生成微调结果。假设这是你的最终目标