solr

solr schema.xml配置

别说谁变了你拦得住时间么 提交于 2020-04-06 02:44:13
solr使用_version_来做文档的版本控制和修改时加锁(乐观锁) <field name="_version_" type=" long " indexed="true" stored="true" /> indexed 是否索引 只能在索引的列上进行查询 stored 是否存储 只能返回存储的列 required 是否必须 multiValued 是否多值 <field name="id" type=" string " indexed="true" stored="true" required="true" multiValued="false" /> dynamicField 动态字段 <dynamicField name="*_i" type="int" indexed="true" stored="true"/> uniqueKey主键列 < uniqueKey >id</uniqueKey> copyField <field name="text" type="text_general" indexed="true" stored="false" multiValued="true"/> <copyField source="cat" dest="text"/> 各种fieldtype : sortMissingLast :排序的时候 空值排在后面

solr高亮设置以及摘要

孤街醉人 提交于 2020-04-06 02:41:12
高亮显示 Java代码 public SolrDocumentList query(String str) { SolrQuery query = new SolrQuery(str); //设置高亮,以下两种方式都行(相当于开启高亮功能) //query.setHighlight(true); query.setParam( "hl" , "true" ); //highlighting //设置高亮显示的请求,高亮显示的内容由该参数决定,但是返回结果还是由SolrQuery决定 //query.setParam("hl.q", "email:zhang@ppstream.com"); /* * 那些字段高亮显示,可以用空格或者逗号分隔(有一个域的时候正常,两个及以上没测试通过) * 老版本使用query.addHighlightField("name");query.addHighlightField("description");给多个字段开启高亮功能 */ query.setParam( "hl.fl" , "name" ); //高亮显示字段前后添加html代码 query.setHighlightSimplePre( "<font color=\"red\">" ); query.setHighlightSimplePost( "</font>" );

solr配置文件之schema.xml

好久不见. 提交于 2020-04-06 02:41:01
以下是针对schema.xml 配置文件的剖析: 1. <types></types>这个标签和它的意义一样,是用来表示数据有哪些类型,这些类型当然是solr内部定义的类型和自定义类型。 2. <!-- The StrField type is not analyzed, but indexed/stored verbatim. --> 和他上面解释一样,string类型是不分词的,要建索引,要存储 <fieldType name="string" class="solr.StrField" sortMissingLast="true" omitNorms="true"/> 3.数值类型,有如下几个类型是默认数值类型,如果想用于排序请用 tint/tfloat/tlong/tdouble类型 <!-- Default numeric field types. For faster range queries, consider the tint/tfloat/tlong/tdouble types. --> <fieldType name="int" class="solr.TrieIntField" precisionStep="0" omitNorms="true" positionIncrementGap="0"/> <fieldType name="float" class

Windows系统环境下Solr之Java实战(二)配置从MySQL数据库批量导入索引

孤者浪人 提交于 2020-04-06 02:37:41
1.将D:\JavaWeb\Solr\solr-6.2.0\dist下面的solr-dataimporthandler-6.2.0.jar和solr-dataimporthandler-extras-6.2.0.jar2个包导入到 D:\JavaWeb\Solr\solrhome\new_core\lib文件夹下面 2.将mysql-connector-java-5.1.7-bin.jar导入到D:\JavaWeb\Solr\solrhome\new_core\lib文件夹下面 3.在D:\JavaWeb\Solr\solrhome\new_core\conf\solrconfig.xml配置文件里面增加如下配置 <!-- the dataimport requestHandler --> <requestHandler name="/dataimport" class="org.apache.solr.handler.dataimport.DataImportHandler"> <lst name="defaults"> <str name="config">data-config.xml</str> </lst> </requestHandler> 4.在D:\JavaWeb\Solr\solrhome\new_core\conf\下面新建配置文件data-config.xml

Apache Solr使用自定义QParser后同义词扩展及Token去重的感悟

旧巷老猫 提交于 2020-04-06 02:27:09
好久没写博客了。近期在用solr做一套系统,期间有不少心得尚未记录。这里先记录一下solr中自定义QParser如何与SynonymFilter和RemoveDuplicatesTokenFilter配合以实现检索时Token同义词扩展与Token去重。 起初按照 solr wiki上的说明 ,在schema.xml里配置了如下filter: 1 < analyzer type = "query" > 2 < tokenizer class = "org.wltea.analyzer.solr.IKTokenizerFactory" isMaxWordLength = "true" /> 3 < filter class = "solr.StopFilterFactory" ignoreCase = "true" words = "stopwords.txt" enablePositionIncrements = "true" /> 4 < filter class = "solr.LowerCaseFilterFactory" /> 5 < filter class = "solr.SynonymFilterFactory" synonyms = "synonyms.txt" ignoreCase = "true" expand = "true" /> 6 < filter

搜索框架:lucene,Solr,Elastic Search 了解一下

耗尽温柔 提交于 2020-04-05 17:56:16
下一篇:Elasticsearch 入门安装 1、lucene (了解) apache 项目基金会的一个顶级项目(主要用于搜索) 1.2、什么是 Lucene lucene 是一个开源的搜索架构,它的作者就是当前hadoop(大数据)的作者 Lucene core: 基于 Java 开发,包含了搜索库,包含了搜索索引,包含了关键字的高亮显示/分词器 ... Solr: 借助于 lucene 进行开发的,就是使用lucene core 进行构建和开发的,并且提供了 json,py,ruby,java 各种API PyLucene: 其实也支持 python 无论是ES还是Solr都是基于Lucene进行开发的 2、Solr (了解) 一个搜索框架,支持分布式,solr 是构建在 Lucene 之上的,所支持格式 json,xml,csv . . . 3、ElasticSearch ES 是一个分布式使用 RestFul 风格的数据搜索引擎,也是构建在 Lucene 之上的,且数据储存格式只支持 JSON 格式。 3.1、ES 的三大核心 Index: 相当于关系型数据库中的库 Type: 相当于关系型数据库中的表 Document: 相当于关系型数据库中的表数据 3.2、ES 和 Solr 的区别 1、ES 下载以后直接可以使用;Solr 配置比较复杂 2、Solr 使用

Apache Solr - XXE&RCE

旧巷老猫 提交于 2020-03-28 03:34:23
Apache Solr - XXE & RCE (1) 0x01 前言 网络上有很多师傅已经做过分析和复现,我写这篇文章的目的主要是为了两点: 从我本人的视角去更详细地去分析这个漏洞 写一个公式化工具插件,具体的框架我还没想好,但我会从这篇文章的这个漏洞开始编写我的漏洞利用代码(有点类似于bugscan那种插件形式),主要分为检测+利用 0x02 Solr源码安装 如果只是为了复现,直接使用官网提供的编译好的二进制文件即可,这里使用solr源码安装的方式,方便后面进行下断点和代码分析。 官网源码地址: https://archive.apache.org/dist/lucene/solr/7.0.1/ 该源码需要使用ant安装,其中会有链接失效的情况导致build失败,请检查链接,比如http需要改成https,或者某些库有问题,需要替换链接。 0x02 调试 访问 http://127.0.0.1:8983/ 根据下边的链接可知 https://paper.seebug.org/425/ 问题出现的代码片段位于 /solr/src/lucene/queryparser/src/java/org/apache/lucene/queryparser/xml/CoreParser.java 在解析xml时,使用parseXML方法进行解析

Elasticsearch和 Solr的区别

拈花ヽ惹草 提交于 2020-03-27 11:34:08
背景:它们都是基于Lucene搜索服务器基础之上开发,一款优秀的, 高性能 的企业级搜索服务器。【是因为他们都是基于分词技术构建的 倒排索引 的方式进行查询】 开发语言:java语言开发 诞生时间: Solr :2004年诞生。 Es:2010年诞生【功能越强大】 区别: 当实时建立索引的时候,solr会产生io阻塞,而es则不会,es查询性能要高于solr。 在不断动态添加数据的时候,solr的检索效率会变的低下,而es则没有什么变化。 Solr利用zookeeper进行分布式管理,而es自身带有分布式系统管理功能。Solr一般都要部署到web服务器上,比如tomcat。启动tomcat的时候需要配置tomcat与solr的关联。【 Solr的本质是一个动态web项目 】 Solr支持更多的格式数据[xml,json,csv等],而es仅支持json文件格式。 Solr是传统搜索应用的有力解决方案,但是es更适用于新兴的实时搜索应用。单纯的对已有数据进行检索的时候,solr效率更好,高于es。 Solr官网提供的功能更多,而es本身更注重于核心功能,高级功能多有第三方插件。 SolrCloud集群图: Elasticsearch:集群图 来源: https://www.cnblogs.com/MessiXiaoMo3334/p/12579552.html

Solr搜索结果说明

让人想犯罪 __ 提交于 2020-03-26 05:57:57
在admin页面,输入相关内容后,会返回xml格式的内容。说明如下: [html] view plain copy <? xml version = "1.0" encoding = "UTF-8" ?> < response > < lst name = "responseHeader" > < int name = "status" > 0 </ int > < int name = "QTime" > 3 </ int > <!--查询耗时(毫秒)Solr有一些缓存(保存过去的搜索结果),提高了搜索效率--> < lst name = "params" > <!--查询的参数--> < str name = "indent" > on </ str > <!--是否缩进XML文件--> < str name = "rows" > 10 </ str > <!--返回的结果条数--> < str name = "start" > 0 </ str > <!--搜索结果的开始位置--> < str name = "q" > monitor </ str > < str name = "version" > 2.2 </ str > <!--版本信息--> </ lst > </ lst > <!--numFound是找到几条,start从第几条开始显示--> <!-

Solr搜索结果说明

白昼怎懂夜的黑 提交于 2020-03-26 05:57:02
在admin页面,输入相关内容后,会返回xml格式的内容。说明如下: [html] view plain copy <? xml version = "1.0" encoding = "UTF-8" ?> < response > < lst name = "responseHeader" > < int name = "status" > 0 </ int > < int name = "QTime" > 3 </ int > <!--查询耗时(毫秒)Solr有一些缓存(保存过去的搜索结果),提高了搜索效率--> < lst name = "params" > <!--查询的参数--> < str name = "indent" > on </ str > <!--是否缩进XML文件--> < str name = "rows" > 10 </ str > <!--返回的结果条数--> < str name = "start" > 0 </ str > <!--搜索结果的开始位置--> < str name = "q" > monitor </ str > < str name = "version" > 2.2 </ str > <!--版本信息--> </ lst > </ lst > <!--numFound是找到几条,start从第几条开始显示--> <!-