Solr/Lucene:按索引中出现的次数对所有字段名进行排序
我想获得所有字段的列表(即字段名),这些字段在Solr索引中出现的次数排序,即:最频繁出现的字段、第二频繁出现的字段等等 或者,获取索引中的所有字段以及它们出现的次数也就足够了 我如何通过单个solr查询或通过solr/lucenejavaapi来实现这一点 字段集不是固定的,范围为数百个。几乎所有的字段都是动态的,除了id,可能还有更多的字段。如中所述,您可以使用LukeRequesthandler来实现这一点 为此,您需要在solrconfig.xml中启用requestHandlerSolr/Lucene:按索引中出现的次数对所有字段名进行排序,solr,lucene,indexing,Solr,Lucene,Indexing,我想获得所有字段的列表(即字段名),这些字段在Solr索引中出现的次数排序,即:最频繁出现的字段、第二频繁出现的字段等等 或者,获取索引中的所有字段以及它们出现的次数也就足够了 我如何通过单个solr查询或通过solr/lucenejavaapi来实现这一点 字段集不是固定的,范围为数百个。几乎所有的字段都是动态的,除了id,可能还有更多的字段。如中所述,您可以使用LukeRequesthandler来实现这一点 为此,您需要在solrconfig.xml中启用requestHandler
叫它
http://solr:8983/solr/admin/luke?numTerms=0
如果您想按某些内容对字段进行排序,则需要您自己进行排序。我建议在java环境中使用Solrj
使用Solrj获取字段
@测试
public void lukeRequest()引发SolrServerException,IOException{
SolrServer SolrServer=新的HttpSolrServer(“http://solr:8983/solr");
LukeRequest LukeRequest=新的LukeRequest();
lukeRequest.setNumTerms(1);
LukeResponse LukeResponse=lukeRequest.process(solrServer);
列表排序=新的数组列表(lukeResponse.getFieldInfo().values());
Collections.sort(sorted,newfieldinfocomparator());
for(FieldInfo信息条目:已排序){
System.out.println(“name:+infoEntry.getName());
System.out.println(“docs:+infoEntry.getDocs());
}
}
示例中使用的比较器
公共类FieldInfoComparator实现Comparator{
@凌驾
公共整数比较(FieldInfo fieldInfo1、FieldInfo fieldInfo2){
if(fieldInfo1.getDocs()>fieldInfo2.getDocs()){
返回-1;
}
if(fieldInfo1.getDocs()
如中所述,您可以使用LukeRequesthandler执行此操作
为此,您需要在solrconfig.xml中启用requestHandler
叫它
http://solr:8983/solr/admin/luke?numTerms=0
如果您想按某些内容对字段进行排序,则需要您自己进行排序。我建议在java环境中使用Solrj
使用Solrj获取字段
@测试
public void lukeRequest()引发SolrServerException,IOException{
SolrServer SolrServer=新的HttpSolrServer(“http://solr:8983/solr");
LukeRequest LukeRequest=新的LukeRequest();
lukeRequest.setNumTerms(1);
LukeResponse LukeResponse=lukeRequest.process(solrServer);
列表排序=新的数组列表(lukeResponse.getFieldInfo().values());
Collections.sort(sorted,newfieldinfocomparator());
for(FieldInfo信息条目:已排序){
System.out.println(“name:+infoEntry.getName());
System.out.println(“docs:+infoEntry.getDocs());
}
}
示例中使用的比较器
公共类FieldInfoComparator实现Comparator{
@凌驾
公共整数比较(FieldInfo fieldInfo1、FieldInfo fieldInfo2){
if(fieldInfo1.getDocs()>fieldInfo2.getDocs()){
返回-1;
}
if(fieldInfo1.getDocs()
您所说的它们出现的次数是什么意思?这可以用许多不同的方式来解释。你所说的它们出现的次数是什么意思?这可以用多种不同的方式来解释。