全文检索~solr的使用
全文检索这个系列在几前年写过lucene的文章,而现在看来它确实已经老了,它的儿子孙子都出来了,已经成为现在检索行列的主流,像solr,elasticsearch等,今天我们主要来看一个solr在aspnetcore里的使用,也就是增删改查之类的,比较容易!
nuget包:solrnet
注入方式:全局单例注入
使用方式:构造方法注入
solr管理系统:它有自己的ui界面
solr里core:类似于关系型数据库里的表,mongodb里的集合
一 solr管理系统
二 注入方式:全局单例注入
services.AddSolrNet(o =>
{
o.ServerUrl = "http://192.168.200.214:8081/solr/system_companysubject";
o.UserName = "sa";
o.Password = "sa";
});
使用方式:构造方法注入
#region Private Fields private ICache _cache;
private RepositoryConfig _config;
private HttpClient _httpClient = new HttpClient();
private ILogger _logger;
private IProducer _producer;
private IRepository<userinfo> _repository;
private ISolrOperations<System_CompanySubject> _solrOperations; #endregion Private Fields #region Public Constructors public ValuesController(
IRepository<userinfo> repository,
IProducer producer,
ILogger logger,
ISolrOperations<System_CompanySubject> solrOperations,
RepositoryConfig config,
ICache cache)
{
_cache = cache;
_config = config;
_solrOperations = solrOperations;
_logger = logger;
_producer = producer;
_repository = repository;
_httpClient.Timeout = new TimeSpan(, , );
_httpClient.DefaultRequestHeaders.Connection.Add("keep-alive");
} #endregion Public Constructors
solr实现的增删改查,很是简单
#region solr相关
[Route("~/Solr")]
public IEnumerable<string> Solr(string companyId, string subjectName)
{
List<ISolrQuery> query = new List<ISolrQuery>();
if (!string.IsNullOrWhiteSpace(companyId))
query.Add(new SolrQueryByField("companyId", companyId));
if (!string.IsNullOrWhiteSpace(subjectName))
query.Add(new SolrQueryByField("subjectName", subjectName)); var subjects = _solrOperations.Query(new SolrMultipleCriteriaQuery(query, Operator.AND), new QueryOptions
{
StartOrCursor = new StartOrCursor.Start(),
// Rows = 1
}); if (subjects != null && subjects.Count > )
{
foreach (var item in subjects)
{
yield return $"company:{item.CompanyId},subjectName:{item.SubjectName}";
}
}
}
[Route("~/SolrAdd")]
public string SolrAdd()
{
_solrOperations.Add(new System_CompanySubject
{
Id = "",
CompanyId = ,
SubjectName = "测试现金",
SubjectNo = "",
});
_solrOperations.Add(new System_CompanySubject
{
Id = "",
CompanyId = ,
SubjectName = "测试结算",
SubjectNo = "",
});
// _solrOperations.Commit();//重新建立索引
return "add ok";
}
[Route("~/SolrDel")]
public string SolrDel(string id)
{
var query = new SolrQueryByField("id", id);
_solrOperations.Delete(query);
return "del ok";
}
#endregion solr相关
感谢各位的阅读!
全文检索~solr的使用的更多相关文章
- 全文检索 -- Solr从概念到实战(一)
全文检索: 将整个文本进行“分词”处理,在索引库中为分词得到的每一个词都建立索引,和用户搜索的关键词进行匹配.实现快速查找效果. 传统sql语句实现的局限性: select song_id,song_ ...
- 全文检索(SOLR)前端应用浅析 (转)
最近在一个关于知识管理系统中检索的一个功能方案,找到了一个很好的参考应用方案嘎要的分析一下,希望有类似应用的可以交流交流. 提起全文检索,Lucene的大名估计地球人都知道,通过这么多年的发展,外围的 ...
- 全文检索Solr集成HanLP中文分词
以前发布过HanLP的Lucene插件,后来很多人跟我说其实Solr更流行(反正我是觉得既然Solr是Lucene的子项目,那么稍微改改配置就能支持Solr),于是就抽空做了个Solr插件出来,开源在 ...
- 全文检索Solr集成HanLP中文分词【转】
以前发布过HanLP的Lucene插件,后来很多人跟我说其实Solr更流行(反正我是觉得既然Solr是Lucene的子项目,那么稍微改改配置就能支持Solr),于是就抽空做了个Solr插件出来,开源在 ...
- 一个简单的Redis结合Spring MVC架构以及实现过程
为了加快开发人员对公司项目的理解.更加容易入手和对公司项目的整体把控. 整体框架 首先介绍公司项目的整体框架,闲话少说,直接上图 整体性能分析 这就是公司的一个整体的架构,为了开发人员对架构的侧重点的 ...
- NoSQL:如何使用NoSQL架构构建实时广告系统
JDNoSQL平台是什么 JDNoSQL平台是一个分布式面向列的KeyValue毫秒级存储服务,存储结构化数据和非机构化数据,支持随机读写与更新,灵活的动态列机制,架构上支持水平扩容,提供高并发.低延 ...
- 全文检索引擎 Solr 部署与基本原理
全文检索引擎 Solr 部署与基本原理 搜索引擎Solr环境搭建实例 关于 solr , schema.xml 的配置说明 全文检索引擎Solr系列-–全文检索基本原理 一.搜索引擎Solr环境搭建实 ...
- solr全文检索原理及solr5.5.0 Windows部署
文章原理链接:http://blog.csdn.net/xiaoyu411502/article/details/44803859 自己稍微总结:全文检索主要有两个过程:创建索引,搜索索引 创建索引: ...
- SOLR (全文检索)
SOLR (全文检索) http://sinykk.iteye.com/ 1. 什么是SOLR 官方网站 http://wiki.apache.org/solr http://wiki.apach ...
随机推荐
- RobotFramework添加自定义关键字实战
背景: 此篇文章是上一篇博客python的requests库怎么发送带cookies的请求的后续,上一篇只是使用python脚本调试通过了,接下来要把我们的方法封装为关键字,在RF中调用. 实施: 一 ...
- Qt绘制简单的风向玫瑰图代码
1.绘制简单的风向玫瑰图代码2.主要使用QPainter3.在子widget上绘制需要使用widget监视事件 eventfilter update();//更新界面 //镜头12 QPainter ...
- Task async await
暇之余,究多Task.async.await. using System; using System.Collections.Generic; using System.Linq; using Sys ...
- 十二、Nodejs 包与 NPM 第三方模块安装 package.json 以及 CNPM
1. 包 Nodejs 中除了它自己提供的核心模块外,我们可以自定义模块,也可以使用第三方的模块.Nodejs 中第三方模块由包组成,可以通过包来对一组具有相互依赖关系的模块进行统一管理. 在 Nod ...
- 【bzoj2330】: [SCOI2011]糖果 图论-差分约束-SPFA
[bzoj2330]: [SCOI2011]糖果 恩..就是裸的差分约束.. x=1 -> (A,B,0) (B,A,0) x=2 -> (A,B,1) [这个情况加个A==B无解的要特 ...
- 条目十五《注意strng实现的多样性》
条目十五<注意strng实现的多样性> 下面以一个打印string空对象的大小切入本条目: #include #include using namespace std; int main( ...
- 微信发送模版消息,PHP代码简单案例
function http_request($url,$data=array()){ $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, $url); c ...
- Fast Matrix Operations UVA - 11992 线段树
题意翻译 有一个r行c列的全0矩阵,有以下三种操作. 1 X1 Y1 X2 Y2 v 子矩阵(X1,Y1,X2,Y2)的元素加v 2 X1 Y1 X2 Y2 v 子矩阵(X1,Y1,X2,Y2)的元素 ...
- js 冒泡事件与解决冒泡事件
事件冒泡 :当一个元素接收到事件的时候 会把他接收到的事件传给自己的父级,一直到window . html代码: <div id="div1"> <div id= ...
- 红蓝对抗 - 蓝队手册(BTFM)(转载)
本文已发表在嘶吼RoarTalk,未经授权,请勿转载! http://www.4hou.com/technology/10173.html 最佳阅读体验版:https://stackedit.io/v ...