mac solr mysql 配置文件_Solr配置文件浅析

接上一篇Linux下安装solr7.4,来谈谈solr的配置文件schema.xml和db-data-config.xml

首先看schema.xml:

id

field标签用来定义solr core中的字段。这里列出的三个字段如果没有特殊原因尽量保留。字段id被声明为uniqueKey,是让id来唯一标明一个solrdocument。通过这个id来对solrdocument进行操作。

type对应的是字段的属性,solr在schema中定义了很多属性,当然也可以自己定义属性。这里常见的属性有pint,pdate,string,boolean等。

不常见或者自定义的属性:

该属性type="text_ws"定义的字段通过空格去分割文本变成一个一个的词,然后可以通过被分割的词去查找该document。

这里用到的逆向索引是solr的精髓,将分好的词作为key,文档标签作为value,对key建索引,去查询文档。

indexed属性如果为true则说明该字段将被建索引。

stored属性如果为true,则将该字段内容进行存储。

multiValued如果设置为true,则表明该字段是由多个字段值组成的。比如上面例子中的text字段,它是由content和title字段组成。对text字段的操作就是对content和title字段进行操作。

上面这一段配置的意思是:有两个字段title和content,他们是自定义的text_hanlp属性,含有这属性的字段都接受hanlp的分词。这两个字段不创建索引,只做存储。text字段负责组合title和content字段,并创建索引用来检索。

required属性表明该字段值是否必须。

自定义属性text_hanlp来达到中文分词效果

因为solr常用的ik分词、mmseg4j都已经不维护了。所以这里使用还有大神维护的Hanlp分词器。

配置Hanlp分词可以参考教程

将hanlp-portable.jar和hanlp-lucene-plugin.jar共两个jar放入${tomcat}/webapps/solr/WEB-INF/lib下

配置好之后,可以在solr admin界面查看分词效果:

16a7057d6985?utm_campaign=maleskine&utm_content=note&utm_medium=seo_notes&utm_source=recommendation

solr分词

定义动态字段

dynamicField定义的就是动态字段,只要符合_i结尾的字段都可以被这个字段所定义。同样的,schema.xml中已经定义好了很多动态字段。可以直接拿来用。

db-data-config.xml配置文件

该文件主要配置数据库连接和字段对应关系。用来做全量和增量索引的创建,相对schema.xml简单很多。

下面看下主要配置:

url="jdbc:mysql://127.0.0.1:3306/database?

useUnicode=true&characterEncoding=UTF-8"

user="root"

batchSize="-1"

password="123456"/>

dataSource用来定义数据库连接,batchSize设为-1是为了避免查询创建索引导致内存溢出。

query="select * from tableName" >

这里做了一个简单的定义,看着很清楚。columen标明的是数据库查出的字段,name标明的属性和schema中定义的字段对应。

deltaQuery="select id from item where last_modified > '${dataimporter.last_index_time}'">

deltaQuery用来做增量索引的创建。

当文件配置好之后,重启tomcat。访问solr/index.html。

16a7057d6985?utm_campaign=maleskine&utm_content=note&utm_medium=seo_notes&utm_source=recommendation

solr创建索引

选择1,然后2可以选择全量索引或者创建增量索引。勾选clean会清楚上次的索引,点选commit创建索引进行提交。点击execute进行执行。

下一篇,更新spring boot 中集成solrJ对solr进行操作。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/360632.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

JSP自定义标签_用简单标签控制标签体执行10次

什么也不说,直接上代码: import java.io.IOException; import javax.servlet.jsp.JspException; import javax.servlet.jsp.tagext.JspFragment; import javax.servlet.jsp.tagext.SimpleTagSupport;//控制标签执行10次 public class SimpleTagDemo2 extends SimpleTagSupport …

JSF:在正确的阶段进行验证(了解生命周期)

嗨,大家好! 尽管标题强调验证一词,但本文实际上是关于JSF生命周期的。 那是因为我相信,真正了解生命周期的最简单方法之一就是通过做出我们一直在做的事情:验证用户输入。 总的来说,理解所谓的JSF生命周期…

mysql 更改root密码字段不存在_初次登陆MySQL修改密码是出现Unknown column 'password' in 'field list'的解决方法...

新安装的MySQL5.7,登录时提示密码错误,安装的时候并没有更改密码,后来通过免密码登录的方式更改密码,输入update mysql.user set passwordpassword(root) where userroot时提示ERROR 1054 (42S22): Unknown column password in f…

OpenShift v3:使用WildFly和MySQL的Java EE 7入门

OpenShift是Red Hat的开源PaaS平台。 OpenShift v3 (将于今年发布)将提供使用Docker和Kubernetes运行微服务的整体体验。 以经典的Red Hat方式,所有工作都在OpenShift Origin的开源中完成。 这也将推动OpenShift Online和OpenShift Enterpris…

《c陷阱与缺陷》笔记--注意边界值

如果要自己实现一个获取绝对值的函数,应该都没有问题,我这边也自己写了一个: void myabs(int i){if(i>0){printf("%d\n",i);}else{printf("%d\n",-i);} } 但是,这个函数真的没有问题吗?如果i的…

mySQL日期函数并运行_mysql日期相关的函数

1、获取当前时间:/**获得当前日期时间(date time)函数:now(), 常用**/select now() fromdual;/**获取当前时间戳,current_timestamp或者current_timestamp()**/select current_timestamp, current_timestamp() fromdual;/**获得当前日期时间…

序列化对象C++对象的JSON序列化与反序列化探索

新手发帖,很多方面都是刚入门,有错误的地方请大家见谅,欢迎批评指正 一:背景 作为一名C开发人员,我始终很期待能够像C#与JAVA那样,可以省力的进行对象的序列化与反序列化,但到现在为止&#xff…

Netflix监管者测试–引入了知事-Junit-runner

考虑一个典型的Netflix Governator junit测试。 public class SampleWithGovernatorJunitSupportTest {Rulepublic LifecycleTester tester new LifecycleTester();Testpublic void testExampleBeanInjection() throws Exception {tester.start();Injector injector tester.…

python socket udp并发_Python进阶----UDP协议使用socket通信,socketserver模块实现并发

Python进阶----UDP协议使用socket通信,socketserver模块实现并发一丶基于UDP协议的socket实现UDP协议传输数据代码如下:👇### 客户端# -*-coding:utf-8-*-# Author:Dsimport socket# 实例化UDP协议的socket对象 ,配置参数, socket.SOCK_DGRAM(数据报)udp_clisocket.…

c++ 使用vs2010调用 win32api

以前读书时都是用vc6.0.后来学c#用vs。装系统只装了vs2010.今天用vs2010写c程序。发现有点陌生。就总结下,免得以后忘记。 首先用vs2010选择c语言。新建一个win32控制台程序。项目打开后会发现stdafx.h,targetver.h,stdafx.cpp还有自己的winA…

Java IO基准测试:Quasar与异步ForkJoinPool与ManagedBlock

“ Arien看到了我们运行的parallelStreams和ForkJoin基准测试的结果后,在Twitter上与我们联系。 这激起了他的兴趣,因此他进行了一些自己的测试,将Quasar纤维加入了混合物。 这是他的结果和结论。” –塔基皮(Takipi)A…

WP8开发札记(一)WP8应用生命周期管理

在介绍生命周期前,我们先了解两个相关的概念。 1、墓碑机制:WP8与Android采用的真后台机制不同,WP8采用的是墓碑机制。一旦从当前应用程序离开(非退出),该应用会被墓碑化,这样可以更好的管理&am…

python类继承中构造方法_第8.3节 Python类的__init__方法深入剖析:构造方法与继承详解...

第8.3节Python类的__init__方法深入剖析:构造方法与继承详解一、 引言上两节介绍了构造方法的语法及参数,说明了构造方法是Python的类创建实例后首先执行的方法,并说明如果类没有重写构造方法,Python将会给出默认的__init__方法…

OpenShift DIY:使用Gradle构建Spring Boot / Undertow应用程序

由于此bug, Gradle 1.6是在OpenShift上运行的最后一个受支持的Gradle版本。 但是从Gradle 2.2开始,这不再是问题,因此使用自己动手做墨盒在OpenShift上运行最新的Gradle不再是问题。 DIY墨盒是一种实验性墨盒,它提供了一种在OpenS…

P2P编程(十)

此为网络编程的一个系列,后续会把内容补上。。。。 转载于:https://www.cnblogs.com/liangjie/p/3155866.html

python默认数据转换_Python_数据类型转换

数据类型转换int(x [,base ]) 将x转换为一个整数long(x [,base ]) 将x转换为一个长整数float(x ) 将x转换到一个浮点数complex(real [,imag ]) 创建一个复数str(x ) 将对象 x 转换为字符串repr(x ) 将对象 x 转换为表达式字符串eval(str ) 用来计算在字符串中的有效Python表达式…

Gradle入门:创建Web应用程序项目

这篇博客文章描述了如何使用Gradle创建一个Web应用程序项目。 更具体地说,我们想创建一个使用Java的Web应用程序项目,将我们的Web应用程序打包到WAR文件中,并在开发环境中运行我们的Web应用程序。 让我们找出如何满足这些要求。 补充阅读&…

js编码java解码_Js编码和Java后台解码

注:在使用get提交,url传递参数的时候,会带来中文乱码的问题,对此可以使用js编码来解决。Js编码的几种方式区别:1.window.escape()与HttpUtility.UrlEncodeUnicode()编码格式一样:将一个汉字编码为%uxxxx格式…

使用JAX-RS和Jetty创建Web服务和Rest Server

用Java创建WebService非常容易。 将其添加到ServletContainer并将其部署到嵌入式WebServer仅需要几行代码。 让我们创建一个具有两个函数的简单计算器,作为WebService的示例。 计算器将计算任何数量的squareRoot和平方。 它将返回一个简单的JSON响应,其…

java填充二维数组_Java用Arrays.fill()初始化二维数组的实现

在最短路径问题上遇到了一个问题,对于二维int数组 map[][],需要初始化为int的最大值,不想用双重循环赋初值,想用Arrays.fill()填充但是失败了。。。。。。首先说明,Arrays.fill()并不能提高赋值的效率,在函数的内部也是…