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.如何对查询结果编 ...
随机推荐
- Java习题10.24
Java习题10.24 1. 1,3.connect()与accept():这两个系统调用用于完成一个完整相关的建立,其中connect()用于建立连接.accept()用于使服务器等待来自某客户进程 ...
- 二叉树总结及部分Lintcode题目分析 1
1. 遍历问题 Preorder / Inorder / Postorder preorder: root left right inorder: left root right postorder: ...
- python 多设备同时安装app包
python 多设备同时安装app包 上代码 #!/usr/bin/env python # -*- encoding: utf-8 -*- import os import time from m ...
- IDEA上传项目到SVN
1.打开IDEA ,上面工具栏选择VCS 选择把项目交给SVN管理 2.选择SVN 3.选择SVN管理后可以看到项目变这个颜色 4.右键项目选择如下 5.点击绿色的+号,选择一个SVN仓库的地址,下面 ...
- 『Golang』—— 标准库之 time
... package main import ( "fmt" "time" ) func main() { time.AfterFunc(time.Milli ...
- cesium相关学习网址
cesium相关学习网址: cesium资料大全网址:https://www.cnblogs.com/cesium1/p/10062942.html http://192.168.101. ...
- python:Django 简介。
Django是基Python的重要WEB框架. 1.安装Django Web框架 安装 pip 安装 在命令行模式 执行 [pip install django == 2.0]或者 [pip in ...
- DNF游戏币拼团
DNF游戏币拼团活动方案 活动目的: 通过拼团的方式来实现老拉新和现实新用户转换,可以通过有需求的用户来告知好友来进行用户裂变 活动时间:预计时间2018.11.11-2018.11.23 SLOGA ...
- spring boot jpa 多表关联 @OneToOne @OneToMany @ManyToOne@ManyToMany
1.一对一关联 @OneToOne import lombok.Data; import javax.persistence.*; /** * @Author: GWL * @Description: ...
- Unity中实现网格轮廓效果,选中边框效果
问题背景: 最近要实现选中实体的高亮效果,要那种类似于unity中Outline的效果,网格轮廓高亮效果. 效果图: 具体代码: OutlineEffect.cs 实体高亮效果类: 轮廓边总控制类,该 ...