Solr学习总结(五)SolrNet的基本用法及CURD
上一篇已经讲到了Solr 查询的相关的参数。这里在讲讲C#是如何通过客户端请求和接受solr服务器的数据, 这里推荐使用SolrNet,主要是:SolrNet使用非常方便,而且用户众多,一直都在更新,感兴趣的可以加入他们的邮件群组,方便迅速了解SolrNet的最新动态。
SorlNet源码地址:https://github.com/mausch/SolrNet
SolrNet使用说明文档:https://github.com/mausch/SolrNet/tree/master/Documentation
一、创建一个项目控制台程序,并引用SolrNet.dll。Demo下载
注意:SolrNet 依赖HttpWebAdapters.dll和Microsoft.Practices.ServiceLocation.dll 这两个dll 文件,所以,如果编译或者测试有问题,引用这两个dll 文件应该就ok了。
二、在solr 的schema.xml 增加相关的Filed 字段,同时创建一个实体类,与schema.xml中的Filed 字段映射。
public class Product{[SolrUniqueKey("id")]public int id { get; set; }[SolrField("name")]public string name { get; set; }[SolrField("title")]public string title { get; set; }[SolrField("category")]public string category { get; set; }[SolrField("content")]public string content { get; set; }[SolrField("price")]public double price { get; set; }[SolrField("color")]public string color { get; set; }[SolrField("updatetime")]public DateTime updatetime { get; set; }[SolrField("orderBy")]public int orderBy { get; set; }}
同时,schema.xml中也要加上相应的Filed 字段,打开solr_home\mycore1\conf 下的schema.xml文件,增加如下Field 配置,如果不知道如何操作,请参考前一篇文章,《Solr学习总结(二)Solr的安装与配置》
<field name="id" type="int" indexed="true" stored="true" required="true" multiValued="false" /> <field name="name" type="string" indexed="true" stored="true" required="true" multiValued="false" /> <field name="title" type="string" indexed="true" stored="true" required="true" multiValued="false" /> <field name="category" type="string" indexed="true" stored="true" required="true" multiValued="false" /> <field name="content" type="string" indexed="true" stored="true" required="true" multiValued="false" /> <field name="price" type="double" indexed="true" stored="true" required="true" multiValued="false" /><field name="color" type="string" indexed="true" stored="true" required="true" multiValued="false" /> <field name="orderBy" type="int" indexed="true" stored="true" required="true" multiValued="false" /> <field name="updatetime" type="date" indexed="true" stored="true" required="true" multiValued="false" />
三、开始调用solrnet:
1.初始化
Startup.Init<Product>("http://localhost:8080/solr/mycore1");
2.增加和修改索引(document)
Solr 索引的增加和修改,都是Add() 方法,solr 会自动判断是否存在此所以,有就修改,没有就新增。
ISolrOperations<Product> solr = ServiceLocator.Current.GetInstance<ISolrOperations<Product>>();var p = new Product(){id = 201,name = "product 201",title = "title 201",category = "201",content = "title 201 green",color = "green",price = 67.92,updatetime = DateTime.Now.AddDays(-101),orderBy = 101};solr.Add(p);solr.Commit();
3. 删除索引
solrnet 重写了多个 delete()方法。这里只介绍一个,其他的自己研究吧。
ISolrOperations<Product> solr = ServiceLocator.Current.GetInstance<ISolrOperations<Product>>();var p = new Product(){id = 201,};solr.Delete(p);solr.Commit();
注意:调用 Add()
或是 Delete()
方法,必须在他们之后加上 Commit()
,否是请求是不会被处理的。
4.查询
ISolrOperations<Product> solr = ServiceLocator.Current.GetInstance<ISolrOperations<Product>>();SolrQueryResults<Product> phoneTaggedArticles = solr.Query(new SolrQuery("id:1"));foreach (Product p in phoneTaggedArticles){Console.WriteLine(string.Format("{0}: {1}", p.id, p.title));}Console.WriteLine();
到这里,Solrnet的基本用法已经说完了,下一篇,将聊聊Solr的一些高级用法,solr 的复杂查询,高亮,Facet分组查询等。
Solr学习总结(五)SolrNet的基本用法及CURD相关推荐
- 学习Kotlin(五)函数与Lambda表达式
推荐阅读: 学习Kotlin(一)为什么使用Kotlin 学习Kotlin(二)基本语法 学习Kotlin(三)类和接口 学习Kotlin(四)对象与泛型 学习Kotlin(五)函数与Lambda表达 ...
- Vue 学习第五天 学习笔记
Vue 学习第五天 1. keyup事件 <div id="app"> <input type="text" v-model=" ...
- StackExchange.Redis学习笔记(五) 发布和订阅
StackExchange.Redis学习笔记(五) 发布和订阅 原文:StackExchange.Redis学习笔记(五) 发布和订阅 Redis命令中的Pub/Sub Redis在 2.0之后的版 ...
- html5类选择器用什么表示,HTML_揭秘常用的五类CSS选择器用法,有许多新手朋友不知道在什么 - phpStudy...
揭秘常用的五类CSS选择器用法 有许多新手朋友不知道在什么情况下运用什么样的CSS选择器,针对新手朋友,对CSS选择器作一些简单的说明,这里重点介绍一下最常用的五类CSS选择器的使用. 本文向大家描述 ...
- 大数据学习系列:Hadoop3.0苦命学习(五)
传送门: 大数据学习系列:Hadoop3.0苦命学习(一) 大数据学习系列:Hadoop3.0苦命学习(二) 大数据学习系列:Hadoop3.0苦命学习(三) 大数据学习系列:Hadoop3.0苦命学 ...
- 文本分类学习 (五) 机器学习SVM的前奏-特征提取(卡方检验续集)
前言: 上一篇比较详细的介绍了卡方检验和卡方分布.这篇我们就实际操刀,找到一些训练集,正所谓纸上得来终觉浅,绝知此事要躬行.然而我在躬行的时候,发现了卡方检验对于文本分类来说应该把公式再变形一般,那样 ...
- Web学习(五)中期项目-简易拳皇
Web学习(五)中期项目-简易拳皇 项目参考地址:https://git.acwing.com/yxc/kof 游戏的基本原理:主要依靠requestAnimationFrame实现,该函数会在下次浏 ...
- invader的java学习第五天基础篇
invader的java学习第五天基础篇(持续更新中-) 一.位运算符 ^.&.|.~.>>.<<.>>>,位运算符就是基于二进制直接进行运算(0为f ...
- Linux内核学习(五):linux kernel源码结构以及makefile分析
Linux内核学习(五):linux kernel源码结构以及makefile分析 前面我们知道了linux内核镜像的生成.加载以及加载工具uboot. 这里我们来看看linux内核的源码的宏观东西, ...
- 强化学习(五) - 时序差分学习(Temporal-Difference Learning)及其实例----Sarsa算法, Q学习, 期望Sarsa算法
强化学习(五) - 时序差分学习(Temporal-Difference Learning)及其实例 5.1 TD预测 例5.1 回家时间的估计 5.2 TD预测方法的优势 例5.2 随机移动 5.3 ...
最新文章
- NodeJS API简介
- CenterNet2:比强更强的二阶段网络,COCO成绩最高达到56.4mPA
- h5 img js 点击图片放大_H5实现移动端图片预览:手势缩放, 手势拖动,双击放大......
- 最常见的5个导致节点重新启动、驱逐或 CRS 意外重启的问题
- 蛙蛙推荐:在c#使用IOCP(完成端口)的简单示例
- 似然函数(likelihood function)
- sql中的distinct
- VUE优秀的组件库总结
- 区块链 p2p点对点网络是什么
- 关于@Autowired的使用:推荐使用构造函数进行注入
- php中用户自定义排序
- 环境规制指数,两种测算方法,整理好的面板数据
- 通用数据权限管理系统设计
- 学习笔记3--车载传感器之毫米波雷达和超声波雷达
- 批处理命令--call和start
- Ubuntu14.04/16.0 安装N卡驱动
- html中siblings方法,jQuery中的siblings()是什么意思(推荐)
- ​ ViewBag​
- 用VB.NET设计各种形状的窗体界面(图)
- python输入abcd输出对应的1234_python学习日记——练习题整理及解答
热门文章
- atitit.团队建设--要不要招技术储备人才的问题
- paip.编程语言到底有没有优劣之分优秀之分
- paip.备份导出ANDROID安卓自带记事本内容
- Rust : RwLock读写锁
- CTP: NET封装后接口中序列化数据的问题
- 从心理学角度看,如何通过故事影响客户的决策?
- 蚂蚁可信原生负责人入选“2021年度全球青年领袖”名单
- 新品Demo —— ZStack Mini 超融合一体机
- oracle clob 导出csv,在Apex把csv导入数据库Clob字段再导入到各自对应列的解决方法...
- 【元胞自动机】基于matlab元胞自动机双通道交通【含Matlab源码 1657期】