2011-06-16 34 views
3

所以我在Lucene 3.0.2中使用了MultiFieldQueryParser,并且给了它多个字段。我想找出哪个字段与查询匹配;我在这里搜索,有一位用户说绝对没有办法做到这一点。这是真的吗?如果是这样,任何人都可以推荐一个解决这个或另一个系统,让我这样做?当匹配查询时返回Lucene字段名称

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

我想查询一个数据库,例如,布拉德和查看查询是否从电影的名字来了,一个演员的名字,导演的名字,等等,等等

谢谢

+0

任何人都可以帮忙吗? :) – ae0709 2011-06-16 19:54:41

回答

0

我会强烈建议使用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); 

这样你可以在正是你想要的字段进行搜索和调整,以产生微调的结果。假设这是你的最终目标。