solr 查询同一个core 的关联字段
实现一个core里面多个字段的关联查询:
应用场景是: 词, 句子,文章
希望通过查询实现词,句子,文章里面共同有的关键字
private static CloudSolrServer cloudSolrServer;
private static String zkHost = "192.168.0.157:2181";
private static CloudSolrServer solrServer = new CloudSolrServer(zkHost);
private static synchronized CloudSolrServer getCloudSolrServer(
final String zkHost) {
if (cloudSolrServer == null) {
try {
cloudSolrServer = new CloudSolrServer(zkHost);
} catch (Exception e) {
e.printStackTrace();
}
}
return cloudSolrServer;
}
public static Map<String, Object> solrCloudR(String skey, int start, int rows) throws SolrServerException{
Map<String, Object> mapResults = new HashMap<String, Object>();
solrServer.setDefaultCollection("collection1");
SolrQuery solrQuery = new SolrQuery();
solrQuery.set("q","word:"+skey+" OR nickname:"+skey+" OR content:"+skey);
solrQuery.setHighlight(true); // 开启高亮组件
solrQuery.addHighlightField(skey);// 高亮字段
solrQuery.setHighlightSimplePre("<font color='red'>");//标记,高亮关键字前缀
solrQuery.setHighlightSimplePost("</font>");//后缀
solrQuery.set("start", start);
solrQuery.set("rows", rows);
QueryResponse response = solrServer.query(solrQuery);
SolrDocumentList results = response.getResults();
long numFound = response.getResults().getNumFound();
mapResults.put("results:", results);
System.out.println("numFound=" +numFound);
for (int i = 0; i < results.size(); ++i) {
System.out.println(results.get(i));
}
return mapResults;
}
public static void main(String[] args) throws Exception {
String skey = "厦门";
//solrCloudR(skey);
//solrCloudR(skey);
//solrSearch(skey, 1, 20);
solrCloudR(skey, 0, 1000);
}
查询结果:
numFound=5
SolrDocument{createtime=Mon Aug 24 14:58:59 PDT 2015, id=502, articlenum=0, sex=true, username=ad, updatetime=Mon Aug 24 16:19:31 PDT 2015, nickname=厦门, wordnum=0, sentencenum=0, money=0.0, _version_=1510384955694252032}
SolrDocument{createtime=Fri Aug 21 11:38:48 PDT 2015, id=132, articlenum=0, username=15622238554, updatetime=Mon Aug 24 18:47:56 PDT 2015, nickname=厦门厦门厦门, wordnum=0, sentencenum=0, money=0.0, password=96E79218965EB72C92A549DD5A330112, _version_=1510384955754020864}
SolrDocument{uid=56, feel=1, updatetime=Mon Aug 24 11:15:58 PDT 2015, state=1, createtime=Mon Aug 24 11:16:00 PDT 2015, id=5, content=[听说台风都不来厦门的], articlenum=112, forwardnum=1, supportnum=1, word=厦门厦门, _version_=1510384955107049472}
SolrDocument{uid=12, feel=1, updatetime=Mon Aug 24 15:04:20 PDT 2015, state=1, createtime=Mon Aug 24 15:04:24 PDT 2015, id=501, content=[听说厦门又下雨], articlenum=12, forwardnum=1, supportnum=1, word=厦门又下雨, _version_=1510384955013726208}
SolrDocument{uid=12, feel=1, updatetime=Mon Aug 24 15:04:20 PDT 2015, state=1, createtime=Mon Aug 24 15:04:24 PDT 2015, id=500, content=[最近天气很不稳定], articlenum=12, forwardnum=1, supportnum=1, word=厦门高温, _version_=1510384954935083008}
solr 查询同一个core 的关联字段的更多相关文章
- mysql查询同一个字段下,不同内容的语句
太久没有用SQL语句都有些忘记了,今天工作中遇到了那就尝试记录一下吧 需求是这样的:想查询同一个字段下,两条指定了不同内容,的其他的值 主要是要想到用where......in 语句如下:select ...
- MyBatis Collection小记—— 关联查询、递归查询、多字段关联
经常会用到mybatis的Collection标签来做级联查询或递归查询,现通过一个伪例来简单的说明一下使用中的关键点: 首先先列出三个表,给出一个场景: 1,角色表 t_role( id,name ...
- EF Core 的关联查询
0 前言 本文会列举出 EF Core 关联查询的方法: 在第一.二.三节中,介绍的是 EF Core 的基本能力,在实体中配置好关系,即可使用,且其使用方式,与编程思维吻合,是本文推荐的方式. 第四 ...
- Solr查询参数sort(排序)
摘要: Solr查询每一次返回的数据都有一定的顺序,特定顺序的结果对于业务来说可能非常重要. 不指定排序 一般我们不指定排序规则,这样的结果能满足大部分需求,默认是用文档的得分作为排序标准.相当于加上 ...
- Solr查询中涉及到的Cache使用及相关的实现【转】
转自:http://www.cnblogs.com/phinecos/archive/2012/05/24/2517018.html 本文将介绍Solr查询中涉及到的Cache使用及相关的实现.Sol ...
- K3 新单到老单关联字段的添加
新单到老单字段的添加分为两种: 一种为文本字段信息的关联,新单与老单字段的信息均为文本字段: 另一种为基础资料信息的关联,新单与老单均为基础资料字段信息. K3 WISE 11.0中存储老 ...
- Solr学习总结(四)Solr查询参数
今天还是不会涉及到.Net和数据库操作,主要还是总结Solr 的查询参数,还是那句话,只有先明白了solr的基础内容和查询语法,后续学习solr 的C#和数据库操作,都是水到渠成的事.这里先列出sol ...
- solr与.net系列课程(四)solr查询参数的讲解与.net如何获取solr数据
solr与.net系列课程(四)solr查询参数的讲解与.net如何获取solr数据 上一节我们完成了solr连接数据库,细心的朋友会发现一个问题,就是solr其实和语言没有任何关系,配置完成后任何语 ...
- sql server 查询多个不关联表且对结果编号
1.除非另外还指定了 TOP 或 FOR XML,否则,ORDER BY 子句在视图.内联函数.派生表.子查询和公用表表达式中无效. 解决方法:top 100 percent * 2.如何对查询结果编 ...
随机推荐
- js实现超简单sku组合算法
let arr = [ [1, 2, 3], [4, 5, 6], [7, 8, 9], [10, 11, 12], ]; function cartesianProductOf() { return ...
- 关于Python中函数的使用
函数的概念 # 概念 # 写了一段代码实现了某个小功能; 然后把这些代码集中到一块, 起一个名字; 下一次就可以根据这个名字再次使用这个代码块, 这就是函数 # 作用 # 方便代码的重用 # 分解任务 ...
- mvc 前台传入后台
转自:http://blog.csdn.net/huangyezi/article/details/45274553 一个很简单的分部视图,Model使用的是列表,再来看看调用该分部视图的action ...
- Netty 源码学习——EventLoop
Netty 源码学习--EventLoop 在前面 Netty 源码学习--客户端流程分析中我们已经知道了一个 EventLoop 大概的流程,这一章我们来详细的看一看. NioEventLoopGr ...
- pycharm中django同步数据库问题
一.Django数据同步过程中遇到的问题: 1.raise ImproperlyConfigured('mysqlclient 1.3.13 or newer is required; you hav ...
- JS中的事件、数组、节点对象处理
在JS代码中编写事件一定要保证页面在浏览器中加载时会把事件加载进页面 事件:在代码中可以通过一个动作来触发另一个行为的总称 A:事件的编写方式1 HTML标签中添加 onxxxx = "函数 ...
- nfs下的exportfs命令和nfs客户端重新挂载
工作中,如果使用了nfs服务器,会遇到修改nfs服务器配置的情况,如果想重新让客户端加载上修改后的配置,但是又不能重启rpcbind服务,我们需要使用export命令了 exportfs命令 常用选项 ...
- 55-Ubuntu-软件安装
1.通过apt安装/卸载软件 apt是advanced packaging tool, 是Linux下的一款安装包管理工具. 可以在终端中方便的安装/卸载/更新软件包. (1)安装软件 sudo ap ...
- 36-Ubuntu-用户管理-01-新建用户useradd
创建用户/设置密码/删除用户/确认用户信息 序号 命令 作用 说明 01 sudo useradd -m -g 组名 新建用户名 添加新用户 -m 自动建立用户家目录 -g 指定用户所在的组,否则会建 ...
- WdatePicker设置时间与倒计时
之前苦于jQuery的datetimepicker插件不知道如何设置秒数,用了同学推荐的WdatePicker,真心好用. 相关文档用法可以上http://www.my97.net/dp/index. ...