全文检索~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 ...
随机推荐
- 【C#】is 和 as
看个例子: public class User { } public class Group { } class Program { static void Main(string[] args) { ...
- 一条命令深度清理你的mac
一条命令深度清理你的mac mac 用了一段时间后很快发现硬盘空间不够了,就想找一些磁盘清理的工具,但是发现居然都是收费的. 就手工操作吧.方法其实非常简单. 就一条命令, cd / du -hd 5 ...
- 【bzoj4176】Lucas的数论 莫比乌斯反演+杜教筛
Description 去年的Lucas非常喜欢数论题,但是一年以后的Lucas却不那么喜欢了. 在整理以前的试题时,发现了这样一道题目"求Sigma(f(i)),其中1<=i< ...
- 4.SVM
- javascript,图片框
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...
- Reviewing notes 2.1 of Mathematical analysis
Chapter2 Numerical sequence and function Cartesian product set If S and T are sets,then the cartesia ...
- C++20草案中的宇宙飞船运算符(<=>,spaceship operator)
C++20草案中的宇宙飞船运算符(<=>,spaceship operator) Herb Sutter提议的新三路运算符<=>已经被合入C++20草案中. 宇宙飞船运算符(h ...
- JS 命名规范
JS的命名规则和规范 规则 - 必须遵守的,不遵守会报错 由字母.数字.下划线.$符号组成,不能以数字开头 不能是关键字和保留字,例如:for.while. 区分大小写 规范 - 建议遵守的,不遵守不 ...
- XAF实现交叉分析
如何实现如图的交叉分析? In this lesson, you will learn how to add the Analysis functionality to your applicatio ...
- 精通 WPF UI Virtualization (提升 OEA 框架中 TreeGrid 控件的性能)
原文:精通 WPF UI Virtualization (提升 OEA 框架中 TreeGrid 控件的性能) 本篇博客主要说明如何使用 UI Virtualization(以下简称为 UIV) 来提 ...