java查询多core的solr,Java SolrCore.getSearchComponent方法代码示例

import org.apache.solr.core.SolrCore; //导入方法依赖的package包/类

@Test

public void testCollateWithFilter() throws Exception

{

SolrCore core = h.getCore();

SearchComponent speller = core.getSearchComponent("spellcheck");

assertTrue("speller is null and it shouldn't be", speller != null);

ModifiableSolrParams params = new ModifiableSolrParams();

params.add(SpellCheckComponent.COMPONENT_NAME, "true");

params.add(SpellingParams.SPELLCHECK_BUILD, "true");

params.add(SpellingParams.SPELLCHECK_COUNT, "10");

params.add(SpellingParams.SPELLCHECK_COLLATE, "true");

params.add(SpellingParams.SPELLCHECK_MAX_COLLATION_TRIES, "10");

params.add(SpellingParams.SPELLCHECK_MAX_COLLATIONS, "10");

params.add(CommonParams.Q, "lowerfilt:(+fauth +home +loane)");

params.add(CommonParams.FQ, "NOT(id:1)");

//Because a FilterQuery is applied which removes doc id#1 from possible hits, we would

//not want the collations to return us "lowerfilt:(+faith +hope +loaves)" as this only matches doc id#1.

SolrRequestHandler handler = core.getRequestHandler("spellCheckCompRH");

SolrQueryResponse rsp = new SolrQueryResponse();

rsp.add("responseHeader", new SimpleOrderedMap());

SolrQueryRequest req = new LocalSolrQueryRequest(core, params);

handler.handleRequest(req, rsp);

req.close();

NamedList values = rsp.getValues();

NamedList spellCheck = (NamedList) values.get("spellcheck");

NamedList suggestions = (NamedList) spellCheck.get("suggestions");

List collations = suggestions.getAll("collation");

assertTrue(collations.size() > 0);

for(String collation : collations) {

assertTrue(!collation.equals("lowerfilt:(+faith +hope +loaves)"));

}

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值