基于solr或者elasticsearch提供的多核,多索引,多shard等查询能力,一般都是由lucene提供的多索引查询的功能演化而来的,这个功能在单机版的lucene里面确实没有发挥多大的威力,但是确是solrclourd,elasticsearch分布式集群查询数据的基础,正是因为lucene提供了多索引归并查询已经合并排序功能,所以在给它加上http的能力,就能把lucene也做成一个分布式的查询框架,当然一个分布式搜索引擎,需要考虑的内容非常多,容错,副本,高可靠,等都是主要功能。

伦理片 http://www.dotdy.com/

本篇介绍洗下如何在solr中实现多core查询,其实也叫多shard查询,多core查询的要求是,两份索引里面的主键字段,和查询数据字段必须一致,就是说都必须有一样的字段名,否则查询的时候或者归并merge的时候会报错,其实这正是分布式搜索的基础条件,只不过现在我们不用solrcloud也能查询多个core,需要注意前提条件: 
主键字段+查询字段的名称必须一致,下面看solrj里面如何实现:

Java代码  
  1. /***
  2. * 多核查询测试
  3. * @throws Exception
  4. */
  5. public static void queryMultiCore()throws Exception{
  6. //查询a和b下面的数据,
  7. HttpSolrClient sc=new HttpSolrClient("http://192.168.1.215:8983/solr/a");
  8. String shards = "192.168.1.215:8983/solr/a,192.168.1.214:8983/solr/b";
  9. ModifiableSolrParams solrParams = new ModifiableSolrParams();
  10. solrParams.set("q", "sname:北京奇虎科技有限公司");
  11. //        solrParams.set("q.op", "AND");//设置查询关系
  12. solrParams.set("fl", "*,score");//设置过滤
  13. solrParams.set("shards", shards);//设置shard
  14. QueryResponse rsp = sc.query(solrParams);
  15. System.out.println("命中数量:"+rsp.getResults().getNumFound());
  16. for(SolrDocument sd:rsp.getResults()){
  17. System.out.println(sd);
  18. }
  19. sc.close();
  20. }
 

如何在Solr中实现多core查询的更多相关文章

  1. 如何在TFS中恢复系统默认查询”已指派给我”的设置(TFS 2013)

    故事是这样开始的,一天开发人员求助说,在浏览器中修改了系统默认的工作项查询"已指派给我"的后,发现这个查询每次都提示超时,并且没有办法恢复到初始的设置状态,因为出现超时提示以后,查 ...

  2. mongodb的地理空间索引如何在solr中体现

    "$near"是唯一一个会对查询结果进行自动排序的地理空间操作符 "$near"的返回结果是按照距离由近及远排序的.其他排序条件不会生效. 这种按照地理位置远近 ...

  3. 如何在vscode中编写.net core 项目(vscode)

    1.下载拓展  .NET Core Extension Pack  (作者:保哥) 这个里面将需要的插件都打包了小白一键下载就好了 2.下载扩展   vscode-solution-explorer ...

  4. 如何在Access2007中使用日期类型查询数据

    select * from 表 where datediff("d",日期型的字段,#2008-09-01#)=0或select * from 表 where 日期型的字段 > ...

  5. 在Solr中配置和使用ansj分词

    在上一节[编译Ansj之Solr插件]中介绍如何编译ansj分词在solr(lucene)环境中使用的接口,本章将介绍如何在solr中使用ansj,其步骤主要包括:下载或者编译ansj和nlp-lan ...

  6. lucene、solr中的日期衰减方法-------function query --尚未测试在solr4.8

    经常有一种情景是这样的:我们索引了N年的文章,而查询时候无论直接用相关度.或者用时间排序,都是比较鲁莽的:我们想要一种既要相关度比较高,又要时间上比较新的文章. 这时候的解决办法就是,自定义日期衰减的 ...

  7. 在IIS中部署.net core应用

    在IIS中部署 .NET Core应用 对于熟悉IIS的程序员来说,将 .NET Core Web应用部署在IIS中,无疑是方便统一管理的事情.网上给出很多如何在IIS中部署 .NET Core 应用 ...

  8. solr跨core查询

    参考文档:这里的跨core不使用solrcloud http://wiki.apache.org/solr/CoreAdmin 注意:跨core查询功能相比单core查询,是有限制的   只需要在ur ...

  9. 如何在Visual Studio 2017中使用C# 7+语法 构建NetCore应用框架之实战篇(二):BitAdminCore框架定位及架构 构建NetCore应用框架之实战篇系列 构建NetCore应用框架之实战篇(一):什么是框架,如何设计一个框架 NetCore入门篇:(十二)在IIS中部署Net Core程序

    如何在Visual Studio 2017中使用C# 7+语法   前言 之前不知看过哪位前辈的博文有点印象C# 7控制台开始支持执行异步方法,然后闲来无事,搞着,搞着没搞出来,然后就写了这篇博文,不 ...

随机推荐

  1. python 返回系统位数

    # For bit it will and bit it will import struct print()

  2. taglist-plus 安装使用

    taglist 可以查看文件中的 类,函数,变量等信息. 在.vimrc中添加: Plugin 'taglist-plus' 然后打开vim编辑器 PluginInstall 使用: 打开taglis ...

  3. Angular单元测试

    https://angular.github.io/protractor/#/http://jasmine.github.io/2.4/introduction.html 测试程序有两种主要方法:端对 ...

  4. Java IO流-序列化流和反序列化流

    2017-11-05 20:42:06 序列化流:把对象按照流的方式存入文本文件或者在网络中传输. 对象 -- 流数据(ObjectOutputStream) 反序列化流:把文本文件中的流对象数据或者 ...

  5. 局域网内web地图的简单实现

    首先,我先说一下这次的主要目的.我们的想法是在不连互联网的局域网中搭起来一个地图服务,类似于百度地图的网页版本,功能最少要有看地图.放缩.标记.批量标记.实时经纬度坐标.这个东西还是让我费了一番力气( ...

  6. ARIMA模型——本质上是error和t-?时刻数据差分的线性模型!!!如果数据序列是非平稳的,并存在一定的增长或下降趋势,则需要对数据进行差分处理!ARIMA(p,d,q)称为差分自回归移动平均模型,AR是自回归, p为自回归项; MA为移动平均,q为移动平均项数,d为时间序列成为平稳时所做的差分次数

    https://www.cnblogs.com/bradleon/p/6827109.html 文章里写得非常好,需详细看.尤其是arima的举例! 可以看到:ARIMA本质上是error和t-?时刻 ...

  7. vsftpd日志配置及查看——可以将vsftpd记录在系统日志里

    vsftpd日志配置及查看 vsftpd ftp服务器的日志设置,可以通过修改主配置文件/etc/vsftpd.conf实现.主配置文件中与日志设置有关的选项包括xferlog_enable .xfe ...

  8. MySQL多表关联查询与存储过程

    --  **************关联查询(多表查询)**************** -- 需求:查询员工及其所在部门(显示员工姓名,部门名称) -- 1.1 交叉连接查询(不推荐.产生笛卡尔乘积 ...

  9. springboot问题集(一)------junit内Assert.assertEquals()的含义

    1. assertEquals([String message],Object target,Object result) target与result不相等,中断测试方法,输出message asse ...

  10. Powerdesigner颜色设置

    Powerdesigner颜色设置