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的日志,不用 ...
随机推荐
- [LeetCode] 110. Balanced Binary Tree_Easy tag: DFS
Given a binary tree, determine if it is height-balanced. For this problem, a height-balanced binary ...
- inbox.MoveTo Folder does not move message out of inbox
inbox.MoveTo Folder does not move message out of inbox #160 Closed vnwind opened this issue on 14 M ...
- cocos2d-x 错误异常抛出捕获和崩溃拦截
Error对象 一旦代码解析或运行时发生错误,JavaScript引擎就会自动产生并抛出一个Error对象的实例,然后整个程序就中断在发生错误的地方. Error对象的实例有三个最基本的属性: nam ...
- Unity3d之表情动画--眨眼
可通过BlendShape来实现眨眼动画,效果如下: 转载请注明出处:http://www.cnblogs.com/jietian331/p/7054673.html 代码如下: using Unit ...
- git起步
关于版本控制 什么是版本控制?为什么要版本控制? 版本控制是记录文件内容变化,以便在将来查阅特定版本的系统.有了版本控制,我们就可以将某个文件或是整个项目回退到之前的某个时间段,查看现在和之前相比项目 ...
- C++/Java线程之分
JAVA线程状态图 1.C++/windows中主线程结束,其他线程必然死亡(即使调用pthread_detach解除父子关系,主线程消亡时也会导致子线程被迫关闭). ----1.1 一个进程中可以有 ...
- mysql使用navicat编写调用存储过程
在Navicat里面,找到函数,右键,新建函数,选择过程,如果有参数就填写函数,如果没有就直接点击完成 在BEGIN......END中间编写要执行的sql语句,例如下面存储过程取名为pro_data ...
- OpenCV LK光流法测试
OpenCV版本: 3.2.0 例程文件目录/samples/cpp/lkdemo.cpp 原始程序是采集相机数据,台式机没有摄像头,用Euroc测试集,偷ORB_SLAM2 /Examples/Mo ...
- Gamma函数深入理解
Gamma函数 当n为正整数时,n的阶乘定义如下:n! = n * (n - 1) * (n - 2) * … * 2 * 1. 当n不是整数时,n!为多少?我们先给出答案. 容易证明,Γ(x + 1 ...
- 使用Hive读取ElasticSearch中的数据
本文将介绍如何通过Hive来读取ElasticSearch中的数据,然后我们可以像操作其他正常Hive表一样,使用Hive来直接操作ElasticSearch中的数据,将极大的方便开发人员.本文使用的 ...