我正在编写一个自定义处理程序,我将在其中运行多个查询,然后合并结果。目前我遇到了在处理程序中创建查询的问题,我需要在其中应用“分组依据”子句......
这就是我创建查询的方式:
String q = params.get(CommonParams.Q);
......
Query myQuery = new WildcardQuery(new Term( "name", q ));
......
ScoreDoc[] hits = searcher.search(myQuery , 100).scoreDocs;
我的问题是:如何获取“q”变量并应用“group by”子句以便对结果进行分组?
例子:
我索引了以下内容:
<doc>
<filed name=id>001</field>
<filed name=name>foo</field>
<filed name=color>red</field>
</doc>
<doc>
<filed name=id>001</field>
<filed name=name>foo</field>
<filed name=color>blue</field>
</doc>
<doc>
<filed name=id>002</field>
<filed name=name>bar</field>
<filed name=color>red</field>
</doc>
<doc>
<filed name=id>002</field>
<filed name=name>bar</field>
<filed name=color>blue</field>
</doc>
是否可以将分组应用于我的请求处理程序内部的“查询”对象以按 id 分组。
Query query = new WildcardQuery(new Term( "name", q ));
这样只会返回2个文件?
我在网上到处搜索,我没有找到任何与我的问题相关的例子。