Solr的特性包括:

• 高级的全文搜索功能

• 专为高通量的网络流量进行的优化

• 基于开放接口(XML和HTTP)的标准

• 综合的HTML管理界面

• 可伸缩性-能够有效地复制到另外一个Solr搜索服务器

• 使用XML配置达到灵活性和适配性

• 可扩展的插件体系

//分页查询

//创建SolrServer对象,要对solr

HttpSolrServer server = new HttpSolrServer(url);

//连接solr服务器超时时间 单位毫秒

server.setConnectionTimeout(timeout);

//是否允许跟踪重定向 默认false

server.setFollowRedirects(followRedirects);

//是否允许压缩

server.setAllowCompression(allowCompression);

//最大重新连接次数

server.setMaxRetries(maxRetries);

//创建查询对象

SolrQuery query = communitySolrHandler.createQuery(pagination);

public SolrQuery createQuery(Pagination pagination){

SolrQuery query = new SolrQuery();

CommunitySolrField k = pagination.getDto();

String value = k.getShortPy();

StringBuilder sb = new StringBuilder();

//拼接查询条件

if (!CollectionUtils.isEmpty(k.getRegionIds())){

for (String regionId:k.getRegionIds()){

sb.append(" regionId:"+regionId);

}

}

if (!CollectionUtils.isEmpty(k.getProjectIds())){

for (String projectId:k.getProjectIds()){

sb.append(" projectId:"+projectId);

}

}

query.setQuery(sb.toString());

//在满足上面条件之外 过滤下面的条件

if (StringUtils.hasText(value)){

if (ToolUtils.matcherZh(value)){

query.addFilterQuery(" communityName:"+value);

}else {

query.addFilterQuery("shortPiny:"+value.toLowerCase()+"*" );

}

}

//分页返回结果

int start = ToolUtils.start(pagination.getPageNo(), pagination.getPageSize()) ;

// 从第几条开始查询

query.setStart(start);

query.setRows(pagination.getPageSize());

return query;

}

//更新索引 一般这段代码是用定时任务来跑得

ConcurrentUpdateSolrServer server = new ConcurrentUpdateSolrServer(solrJSearchClient.getUrl()+ SolrTable.community.toString(), solrJSearchClient.getQueueSize(), solrJSearchClient.getThreadCount());

List list = communityDao.findAllCommunitySolr() ;

if (CollectionUtils.isEmpty(list)) {

return;

}

List ids = new ArrayList();

List docs = new ArrayList();

SolrInputDocument doc;

HanZi hanZi;

for (CommunityDto communityDto:list){

doc = new SolrInputDocument();

hanZi = new HanZi(communityDto.getName());

doc.addField("id",communityDto.getId());

doc.addField("communityName",communityDto.getName());

doc.addField("piny",communityDto.getPiny());

doc.addField("shortPiny",hanZi.getPinYinHeadChar());

doc.addField("sortDefault",communityDto.getSortDefault());

doc.addField("regionId",communityDto.getDicRegionId());

doc.addField("projectId",communityDto.getProjectId());

docs.add(doc);

ids.add(communityDto.getId());

}

try {

//先删除

server.deleteById(ids);

server.commit();

//再添加/更新索引

server.add(docs);

//对索引进行优化

server.optimize();

server.commit();

} catch (Exception e) {

e.printStackTrace();

}

solrj mysql_SolrJ 操作solr增删改查相关推荐

  1. oracle将查询结果声明为伪表,Oracle查询操作(增删改查,伪表,高级查询)实例讲解...

    SQL查询操作:增删改查 一.SQL操作符 算术操作符 + - * / 比较操作符 = != < > <= >= BETWEEN--AND IN LINK IS NULL 逻辑 ...

  2. js操作indexedDB增删改查示例

    js操作indexedDB增删改查示例 if ('indexedDB' in window) {// 如果数据库不存在则创建,如果存在但是version更大,会自动升级不会复制原来的版本var req ...

  3. mysql 中caption_Django-Model操作数据库(增删改查、连表结构)(示例代码)

    Django-Model操作数据库(增删改查.连表结构) 一.数据库操作 1.创建model表 基本结构 from django.db importmodelsclassuserinfo(models ...

  4. GridView的常用操作(增删改查)

    GridView的常用操作(增删改查) void BindData()         {             string sql = "select top 10 ID,jobno, ...

  5. golang连接mysql操作示例增删改查

    golang本身没有提供连接mysql的驱动,但是定义了标准接口供第三方开发驱动.这里连接mysql可以使用第三方库,第三方库推荐使用https://github.com/Go-SQL-Driver/ ...

  6. python pymysql实例_Python使用pymysql模块操作mysql增删改查实例分析

    Python使用pymysql模块操作mysql增删改查实例分析 发布时间:2020-09-30 16:42:12 来源:脚本之家 阅读:92 本文实例讲述了Python使用pymysql模块操作My ...

  7. Day 07 DjangoORM相关操作(增删改查)

    Day 07 DjangoORM相关操作(增删改查) 前提条件:配置数据库 **PROJECT.settings**.py DATABASES = {'default': {'ENGINE': 'dj ...

  8. Python列表及其基本的操作(增删改查)

    Python列表及其基本的操作(增删改查) 增 1.insert() 2.append() 3.extend() 删 1.del() 2.pop() 2.1pop() 2.2pop(索引) 3.rem ...

  9. Django-Model操作数据库(增删改查、连表结构)参考

    一.数据库操作 1.创建model表 基本结构 1 2 3 4 5 6 from django.db import models class userinfo(models.Model): #如果没有 ...

最新文章

  1. android ffmegp for_FFmpeg 编译for Android
  2. ML之xgboost:基于xgboost(5f-CrVa)算法对HiggsBoson数据集(Kaggle竞赛)训练(模型保存+可视化)实现二分类预测
  3. 搜索引擎反作弊之内容作弊
  4. 特斯拉对手再秀“肌肉”,Lucid Motors展示电动汽车雪上漂移
  5. 【机器学习】LR的分布式(并行化)实现
  6. 美团flutter_ggtalk 聊聊跨平台:后起之秀 Flutter
  7. Linux 的发行版 Ubuntu 的发展简史
  8. ArcGis dbf读写——挂接Excel到属性表 C#
  9. 送书!60 本签名书!
  10. 网线连接电脑共享文件传递
  11. apex创建快捷方式_盖伦下载的Origin平台、Apex游戏手动添加快捷方式
  12. 苹果手机屏幕尺寸_苹果有意推出 折叠屏手机,屏幕尺寸或为 7.2 寸!
  13. XMAPP多端口配置
  14. [白话解析] 深入浅出最大熵模型
  15. wget php mirror 地址,wget命令镜像网站
  16. HDU 2102 拯救公主
  17. “DOTA“巨魔战将连续晕眩的概率
  18. 【电子通识】为什么IC需要自己的去耦电容?
  19. 6种无线通信技术对比(WiFi,Zigbee,蓝牙,Lora,NB-lot,4G)。
  20. 开启手机找回连接服务器失败,原神连接服务器失败什么意思?连接服务器失败解决方法...

热门文章

  1. html期末大作业美食主题网页源码0006
  2. 商务部:2018年跨境电商零售进出口总额1347亿
  3. java recordset_使用VBA Excel代码中的RecordSet数据创建图表
  4. python:bdb --- 调试器框架
  5. 深度译文|Google的大规模集群管理系统Borg
  6. 4G LTE 频段列表
  7. 论文笔记——An Empirical Study of Supplementary Bug Fixes
  8. Python的深浅拷贝
  9. Java用户输入圆半径求圆面积
  10. 失业的程序员(十):分歧的产生