Solr基本操作
/update
使用/update进行索引维护,进入Solr管理界面SolrCore下的Document下:
我们进行更新操作可以用json和xml多种格式,这里以xml格式为例说明。先来看看界面上的几个选项:
1、Commit Within
commitWithin="10000" : solr在做索引的时候,每个10000(10秒)毫秒,做一次文档提交。为了方便测试也可以在Document中立即提交。
<add>
<doc>
<field name="id">change.me</field>
<field name="title">change.me</field>
</doc>
</add>
<commit/>
2、Overwrite
overwrite="true":solr在做索引的时候,如果文档已经存在,就用xml中的文档进行替换。
3、Boost
boost是增强、促进的意思,在创建索引时设置boost值:可以针对Field设置boost,也可以针对Document设置boost值,如下:
<add>
<doc>
<field name="id">a01</field>
<field name="product_name" boost="20.0">粉刷匠</field>
<field name="product_description" >我是一个粉刷匠</field>
</doc>
<doc boost="30.0">
<field name="id">a02</field>
<field name="product_name">粉刷匠</field>
<field name="product_description" >我是两个粉刷匠</field>
</doc>
</add>
<commit/>
针对Field设置boost必须搜索时匹配到该Field在计算相关度得分时才有效,针对Document设置Field则在搜索时只要匹配到该Document的任意Field在计算相
关度得分都有效。
测试:如果要搜索product_description,关键字“粉刷匠”,“a02”的doc会排在前边,因为“a02”是整体设置了boost值。
在创建搜索时设置域的boost值:搜索匹配到的域如果boost值设置的高则计算的相关度得分就可能会高,如下:
<add>
<doc>
<field name="id">a03</field>
<field name="product_name">lucene实战</field>
<field name="product_description">这是一本讲解全文检索技术的书籍</field>
</doc>
<doc>
<field name="id">a04</field>
<field name="product_name">全文检索</field>
<field name="product_description" >Lucene是一个全文检索工具包</field>
</doc>
</add>
<commit/>
“a03”文档的product_name中有lucene,product_description中没有,“a04”文档中的product_name中没有lucene,"product_description中有lucene。product_name和product_description组合域搜索时设置product_name的boost值高点,如下:
当product_name中匹配到重要性要比product_description高,查询结果是product_name中匹配到关键字的排在前边,如下:
请求格式
solr默认根据id(唯一约束)域来更新Document的内容,如果根据id值搜索不到id域则会执行添加操作,如果找到则更新。唯一标识 Field必须有,这里使用Solr默认的id。
增加、修改索引格式如下:
<add>
<doc>
<field name="id">change.me</field>
<field name="??" >??</field>
...
</doc>
</add>
删除索引格式如下:
<!--删除制定ID的索引-->
<delete>
<id>8</id>
...
</delete>
<!--删除查询到的索引数据-->
<delete>
<query>product_catalog_name:粉刷匠</query>
</delete>
<!--删除所有索引数据-->
<delete>
<query>*:*</query>
</delete>
/select
Solr搜索处理器,我们可以在配置文件设置一些默认参数,conf/solrconfig.xml。
<requestHandler name="/select" class="solr.SearchHandler">
<!-- 设置默认的参数值,可以在请求地址中修改这些参数-->
<lst name="defaults">
<str name="echoParams">explicit</str>
<int name="rows">10</int><!--显示数量-->
<str name="wt">json</str><!--显示格式-->
<str name="df">text</str><!--默认搜索字段-->
</lst>
</requestHandler>
通过/select搜索索引,Solr制定一些参数完成不同需求的搜索,我们看看界面中的参数配置(这些参数也可在上边的配置文件中配置)
1、q - 查询字符串,必须的,如果查询所有使用*:*。
2、fq - (filter query)过虑查询,作用:在q查询符合结果中同时是fq查询符合的,这里的过滤条件也可以写在q中,规则都是一样的,例如:
3、sort - 排序,格式:sort=<field name> + <desc|asc>[,<fieldname> + <desc|asc]示例:
4、start - 分页显示使用,开始记录下标,从0开始,rows - 指定返回结果最多有多少条记录,配合start来实现分页。
5、fl - 指定返回那些字段内容,用逗号或空格分隔多个。
6、df-指定一个搜索Field,指定后就可以直接在“q”查询条件中输入关键字。
7、Raw Query Parameters - 原始请求语句,类似http中get请求参数
8、wt - (writer type)指定输出格式,可以有 xml, json, php, phps, 后面 solr1.3增加的,要用通知我们,因为默认没有打开。
9、hl - 是否高亮 ,设置高亮Field,设置格式前缀和后缀。
Solr基本操作的更多相关文章
- SolrCloud6.3 单机、集群、内置jetty、tomcat搭建、对collection操作
参考:https://my.oschina.net/u/1416405/blog/821187 1.Solr 单机 1.1.Solr下载 1.solr官网:http://lucene.apache.o ...
- 利用SOLR搭建企业搜索平台 之——Solr索引基本操作
来源:http://blog.csdn.net/zx13525079024/article/details/25367239 我们来看下通过界面来操作SOLR,包括SOLR索引的添加,查询等基本操作. ...
- solr开发之基本操作
package zr.com.util; import java.io.IOException; import java.util.List; import java.util.Map; import ...
- Solr记录-solr介绍及配置
Solr是一个开源搜索平台,用于构建搜索应用程序. 它建立在Lucene(全文搜索引擎)之上. Solr是企业级的,快速的和高度可扩展的. 使用Solr构建的应用程序非常复杂,可提供高性能. 为了在C ...
- Lucene7.2.1系列(二)luke使用及索引文档的基本操作
系列文章: Lucene系列(一)快速入门 Lucene系列(二)luke使用及索引文档的基本操作 Lucene系列(三)查询及高亮 luke入门 简介: github地址:https://githu ...
- 全文检索之solr学习
solr下载: http://www.apache.org/dyn/closer.lua/lucene/solr/7.3.1 学习教程 除了官网的教程,一切教程都是可以有错误的. https://lu ...
- Solr学习笔记(3) —— SolrJ管理索引库&集群
一.什么是SolrJ solrj是访问Solr服务的java客户端,提供索引和搜索的请求方法,SolrJ通常嵌入在业务系统中,通过SolrJ的API接口操作Solr服务,如下图: 二.SolrJ的基本 ...
- Solr 7 部署与使用踩坑全记录
前言 Solr 是一种可供企业使用的.基于 Lucene 的搜索服务器,它支持层面搜索.命中醒目显示和多种输出格式.在这篇文章中,我将介绍 Solr 的部署和使用的基本操作,希望能让初次使用的朋友们少 ...
- Solr Admin管理界面使用说明
Notice:本说明基于Solr6.4.2. 本文讨论的是如何使用Solr Admin UI. 一级菜单 图1.SolrCloud模式 图2.单机Solr模式 Logging:展示Solr的日志,不用 ...
随机推荐
- (已解决)iOS真机运行 Xcode报错(libpng error: CgBI: unhandled critical chunk)
Cocos2d-x加载图片资源出现libpng error: CgBI: unhandled critical chunk Xcode7.3 设置Remove Text Metadata From P ...
- UGUI之Scrollbar使用
这个效果主要用到了3个组件(对象): 1:Scrollbar对象 滚动条 2:Scroll Rect组件 让对象具有滑动效果 3:Mask组件 遮罩层.把多余的部分隐藏不显示 Scrollbar ...
- 数据加密之SymmetricAlgorithm加密
#region SymmetricAlgorithm加密 /// <summary> /// 按指定对称算法.键和向量加密字符串 /// </summary> public s ...
- rsa 加密 pkcs#1格式秘钥的格式化
C++调用openssl库生成的秘钥对,通过传输传出来的只有秘钥的内容,没有秘钥的格式.而我们在调用openssl库加密解密时,传入的秘钥是需要包含格式的.C++调用openssl库需要的格式为pkc ...
- MyBatis基础入门《十八》动态SQL(if-where)
MyBatis基础入门<十八>动态SQL(if-where) 描述: 代码是在<MyBatis基础入门<十七>动态SQL>基础上进行改造的,不再贴所有代码,仅贴改动 ...
- beego 初体验 - 路由
beego 的路由系统写的很精简 直接将 url 和要映射的 controller 类关联起来就OK: 然后再放一张 login 的 controller 实现,刚好展示下同一个 url 映射到不同方 ...
- Java包装
public class Test2 { public static void main(String[] args) { /*String str = "..............&qu ...
- meta 跳转
强无敌. 是否厌倦了页面枯燥的跳转? 试试这样的跳转吧. Duration:表示滤镜特效的持续时间(单位:秒) Transition:滤镜类型.表示使用哪种特效,取值为0-23. <Meta h ...
- CSS选择器的优先级及权重问题【CSS核心问题】及其它属性
1.CSS选择器优先级: !important >行间样式> id >class和属性选择器>标签选择器>通配符选择器 注意:[初级工程师水平] 2. ...
- sublime text3配置及相关小技巧
1.下载&安装: 官方地址:http://www.sublimetext.com/,sublime text3又更新了,支持不依赖插件进行侧边栏颜色的更改,同时自带的皮肤颜色也有四种,十分方便 ...