/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基本操作的更多相关文章

  1. SolrCloud6.3 单机、集群、内置jetty、tomcat搭建、对collection操作

    参考:https://my.oschina.net/u/1416405/blog/821187 1.Solr 单机 1.1.Solr下载 1.solr官网:http://lucene.apache.o ...

  2. 利用SOLR搭建企业搜索平台 之——Solr索引基本操作

    来源:http://blog.csdn.net/zx13525079024/article/details/25367239 我们来看下通过界面来操作SOLR,包括SOLR索引的添加,查询等基本操作. ...

  3. solr开发之基本操作

    package zr.com.util; import java.io.IOException; import java.util.List; import java.util.Map; import ...

  4. Solr记录-solr介绍及配置

    Solr是一个开源搜索平台,用于构建搜索应用程序. 它建立在Lucene(全文搜索引擎)之上. Solr是企业级的,快速的和高度可扩展的. 使用Solr构建的应用程序非常复杂,可提供高性能. 为了在C ...

  5. Lucene7.2.1系列(二)luke使用及索引文档的基本操作

    系列文章: Lucene系列(一)快速入门 Lucene系列(二)luke使用及索引文档的基本操作 Lucene系列(三)查询及高亮 luke入门 简介: github地址:https://githu ...

  6. 全文检索之solr学习

    solr下载: http://www.apache.org/dyn/closer.lua/lucene/solr/7.3.1 学习教程 除了官网的教程,一切教程都是可以有错误的. https://lu ...

  7. Solr学习笔记(3) —— SolrJ管理索引库&集群

    一.什么是SolrJ solrj是访问Solr服务的java客户端,提供索引和搜索的请求方法,SolrJ通常嵌入在业务系统中,通过SolrJ的API接口操作Solr服务,如下图: 二.SolrJ的基本 ...

  8. Solr 7 部署与使用踩坑全记录

    前言 Solr 是一种可供企业使用的.基于 Lucene 的搜索服务器,它支持层面搜索.命中醒目显示和多种输出格式.在这篇文章中,我将介绍 Solr 的部署和使用的基本操作,希望能让初次使用的朋友们少 ...

  9. Solr Admin管理界面使用说明

    Notice:本说明基于Solr6.4.2. 本文讨论的是如何使用Solr Admin UI. 一级菜单 图1.SolrCloud模式 图2.单机Solr模式 Logging:展示Solr的日志,不用 ...

随机推荐

  1. centos 下python升级

    https://www.cnblogs.com/leon-zyl/p/8422699.html

  2. iOS UI进阶-1.1 Quartz2D 图片水印/裁剪/截图

    图片水印 UIImage+MJ.h #import <UIKit/UIKit.h> @interface UIImage (MJ) /** * 打水印 * * @param bg 背景图片 ...

  3. unity3d连接Sqlite并打包发布Android

    连接Sqlite首先要把dll程序集导入到unity3d工程里面.安装好的unity中可以找到

  4. CentOS7.5 防火墙指令

    防火墙指令 1. 查看防火墙状态: firewall-cmd --state 2. 启动防火墙 systemctl start firewalld.service 3. 关闭防火墙 systemctl ...

  5. sqlserver字符集问题(中文出乱码,排序错误等)

    在创建sqlserver 数据库时未指定排序字符集,databases则会使用instances的排序规则.为了支持中文,需要设置成Chinese_PRC_CI_AS. (1)通过sql脚本修改 -- ...

  6. c#如何判断字符串是否含中文

    如代码: static bool ContainChinese(string input) { string pattern = "[\u4e00-\u9fbb]"; return ...

  7. JSP知识点

    1.九大内置对象: request HttpServletRequest类的实例 response HttpServletResponse类的实例 out PrintWriter类的实例,用于把结果输 ...

  8. codeforces 980E The Number Games

    题意: 给出一棵树,要求去掉k个点,使得剩下的还是一棵树,并且要求Σ(2^i)最大,i是剩下的节点的编号. 思路: 要使得剩下的点的2的幂的和最大,那么肯定要保住大的点,这是贪心. 考虑去掉哪些点的话 ...

  9. Ontology Relations

    Overview The following page documents the relations used in the filtered GO ontology. For informatio ...

  10. [转载]C#中Invoke的用法()

    invoke和begininvoke 区别 一直对invoke和begininvoke的使用和概念比较混乱,这两天看了些资料,对这两个的用法和原理有了些新的认识和理解. 首先说下,invoke和beg ...