首页
学习
活动
专区
圈层
工具
发布

Apache Solr DataImportHandler 远程代码执行漏洞(CVE-2019-0193) 分析

• schema.xml/managed-schema: 这里面定义了与数据源相关联的字段(Field)以及Solr建立索引时该如何处理Field,它的内容可以自己打开新建的core下的schema.xml...Indexed:是否索引 Stored:是否存储 multiValued:是否多值,如果是多值在一个域中可以保持多个值 example:...(查询语句、url等等)要读什么样的数据(关系数据库中的列、或者xml的域)、做什么样的处理(修改/添加/删除)等,Solr为这些数据数据创建索引并将数据保存为Document 对于此漏洞需要了解dataConfig...useSolrAddSchema(可选):如果输入到此处理器的xml具有与solr add xml相同的模式,则将其 值设置为“true”...如果字段在模式中标记为多值,并且在xpath的 给定行中找到多个值,则由XPathEntityProcessor自动处理。

2.5K20
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    Apache Solr DataImportHandler远程代码执行漏洞(CVE-2019-0193) 分析

    schema.xml/managed-schema:这里面定义了与数据源相关联的字段(Field)以及Solr建立索引时该如何处理Field,它的内容可以自己打开新建的core下的schema.xml/...Indexed:是否索引 Stored:是否存储 multiValued:是否多值,如果是多值在一个域中可以保持多个值 example:...(查询语句、url等等)要读什么样的数据(关系数据库中的列、或者xml的域)、做什么样的处理(修改/添加/删除)等,Solr为这些数据数据创建索引并将数据保存为Document 对于此漏洞需要了解dataConfig...useSolrAddSchema(可选):如果输入到此处理器的xml具有与solr add xml相同的模式,则将其 值设置为“true”...如果字段在模式中标记为多值,并且在xpath的 给定行中找到多个值,则由XPathEntityProcessor自动处理。

    1.7K00

    浅谈Lucene中的DocValues

    前言: 在Lucene4.x之后,出现一个重大的特性,就是索引支持DocValues,这对于广大的solr和elasticsearch用户,无疑来说是一个福音,这玩意的出现通过牺牲一定的磁盘空间带来的好处主要有两个...基于lucene的solr和es都是使用经典的倒排索引模式来达到快速检索的目的,简单的说就是建立 搜索词=》 文档id列表 这样的关系映射, 然后在搜索时,通过类似hash算法,来快速定位到一个搜索关键词...基于这个原因,在lucene4.x之后出现了docvalue这个新特性,在构建索引时会对开启docvalues的字段,额外构建一个已经排好序的文档到字段级别的一个列式存储映射,它减轻了在排序和分组时,对内存的依赖...等 2,需要提供函数查询的字段 3,需要高亮的字段,这个确实能加速,但是散仙并不建议把高亮放在服务端程序做,建议放在前端实现,不容易出错而且总体性能比服务端高 4,需要参与自定义评分的字段,这个稍复杂...: 字符串或UUID字段+多值 会选择SORTED_SET作为docvalue存储 C:数值或日期或枚举字段+单值 会选择NUMERIC 作为docvalue存储 D:数值或日期或枚举字段+多值 会选择

    3K30

    solr docvalues类型

    solr是使用经典的倒排索引模式来达到快速检索的目的,简单的说就是建立 搜索词=》 文档id列表 这样的关系映射, 然后在搜索时,通过类似hash算法,来快速定位到一个搜索关键词,然后读取其的文档id集合...基于这个原因,在lucene4.x之后出现了docvalue这个新特性,在构建索引时会对开启docvalues的字段,额外构建一个已经排好序的文档到字段级别的一个列式存储映射,它减轻了在排序和分组时,对内存的依赖...存储 B: 字符串或UUID字段+多值 会选择SORTED_SET作为docvalue存储 C:数值或日期或枚举字段+单值 会选择NUMERIC 作为docvalue存储 D:数值或日期或枚举字段...+多值 会选择SORTED_SET作为docvalue存储 注: 1.修改schema.xml中字段的docValues属性后需要在更新完solr config后重新更新索引才能生效 2.设置为docValues...fl明确选择该字段,fl:*不能返回useDocValuesAsStored的docValues字段 3.doValues字段如果stored="false"时,如果该字段是多值字段,那么查询返回的值为排序后的字段

    54720

    三、Solr管理控制台(二)

    索引库相关操作 Overview 索引库的总览,显示集合的信息和分片信息 Analysis 分析器:这个功能可以用来调试字段的分词效果 左边部分是针对索引解析器的处理过程,右边部分是针对查询解析器的处理过程...,我们来做一下测试,选择底部的字段或者字段类型,这里我们选择content字段,输入“I love you”,然后点击Analyse Values按钮,让我们来看一下索引解析器和查询解析器的处理结果...才能导入 Documents 索引文档的相关操作,一般新增、修改、删除索引文档数据都在这个菜单完成 我们可以看到请求处理器是/update 对应的配置文件,可以到solrconfig.xml文件中进行查看...indexed:这个字段是否能被索引 multiValued:这个字段是否能存储多值 required:这个字段是否是每个文档必须要保存的字段 2.Add Dynamic Field:添加动态字段...,界面如下: 动态字段类似添加字段 3.Add Copy Field:添加拷贝字段,拷贝字段主要是将索引文档的多个字段映射到该字段,后续可通过查询该字段实现多个字段的查询功能,配置界面如下:

    1.8K10

    Solr的schema.xml

    schema.xml是Solr一个配置文件,它包含了你的文档所有的字段,以及当文档被加入索引或查询字段时,这些字段是如何被处理的。这个文件被存储在Solr主文件夹下的conf目录下,默认的路径....indexed:是否被索引,只有设置为true的字段才能进行搜索排序分片(earchable、 sortable、 facetable)。...stored:是否存储内容,如果不需要存储字段值,尽量设置为false以提高效率。 multiValued:是否为多值类型,SOLR允许配置多个数据源字段存储到一个搜索字段中。...,提供速度 将一个field的数据拷贝到另一个,可以用2种不同的方式来建立索引 我们将所有的中文分词字段全部拷贝至all中,当我们进行全文检索是,只用搜索all字段就OK了。...其包含属性: source:源field字段 dest:目标field字段 maxChars:最多拷贝多少字符 注意,这里的目标字段必须支持多值,最好不要存储,因为他只是做搜索。

    1.2K30

    Solr和Spring Data Solr

    一.Solr概述与安装 1.Solr简介 Solr是一个开源搜索平台,用于构建搜索应用程序。 它建立在Lucene(全文搜索引擎)之上。 Solr是企业级的,快速的和高度可扩展的。...Solr可以和Hadoop(http://www.yiibai.com/hadoop/)一起使用。由于Hadoop处理大量数据,Solr帮助我们从这么大的源中找到所需的信息。...不仅限于搜索,Solr也可以用于存储目的。像其他NoSQL数据库一样,它是一种非关系数据存储和处理技术。总之,Solr是一个可扩展的,可部署,搜索/存储引擎,优化搜索大量以文本为中心的数据。...域的常用属性: name:指定域的名称 type:指定域的类型 indexed:是否索引 stored:是否存储 required:是否必须 multiValued:是否多值 4.1普通域 修改solrhome...--name:字段名称 type:字段类型 stored:是否存储分词前内容(复制域选择false) required:是否必填 indexed:索引(是否进行查询) --> <field name

    2.8K20

    Solr的基本使用

    field属性:是否索引、是否存储、是否分词 ,是否多值multiValued multiValued:该Field如果要存储多个值时设置为true,solr允许一个Field存储多个值,比如存储一个用户的好友...定义步骤 先确定定义的商品document的field有哪些? 可以根据mysql数据库中商品表的字段来确定: products商品表: ?...Solr作为一个服务端,同时也提供很多的不同编程语言的客户端,供程序员开发使用。 ? SorlJ安装 solrj就是一推api,即jar包。...业务系统的应用程序(javaEE程序)通过solrJ提供的api调用solr服务。 下载的solr的zip包中就有solrj的jar: ? 要使用solrJ需要哪些jar包?...---- 数据导入处理器 ---- dataimport-Handler介绍 solr提供dataimport-Handler数据导入处理器,工作流程: 1、solr通过dataimport-Handler

    2.1K30

    利用java反射机制编写solr通用的java客户端

    一、前言 通过上一篇的讲解,我们知道了dynamicFiled字段,它是动态的,不需要显示的声明。而且一些常用的基本类型solr已经默认给我们创建好了。   例如:*_i,*_is,等。   ...如果我们要使用动态字段,字段的命名就需要符合上述规则。solr为我们提供了大量的动态字段: ?...二、实体类的编写 在这里,我们以创建商品的索引为例,创建实体如下: @Getter@Setter public class Product {   //商品id,而且是必有字段 private...String proName_s;   //商品架构 是double型,所以以"_d"结尾 private Double price_d;   //商品分类 是字符串类型,而且一个商品可以有多个分类,是多值...page; } public void close() throws IOException { server.close(); } }   我们在创建实体类时,字段的名称按照动态值的规则命名

    1.1K10

    【搜索引擎】Apache Solr 神经搜索

    与稀疏方法(标记器用于直接从文本输入生成稀疏向量)相比,生成向量的任务必须在 Apache Solr 外部的应用程序逻辑中处理。...现在,Lucene 编解码器具有构建 NSW 图形所需的所有特定于字段的配置。...该组件可以访问之前在将字段写入 org.apache.lucene.codecs.lucene90.Lucene90HnswVectorsWriter#writeField 中的索引时初始化的 FieldInfo...当前特点: DenseVectorField 类型 Knn 查询解析器 密集向量场(DenseVectorField) 密集向量字段提供了索引和搜索浮点元素的密集向量的可能性。...注:目前不支持多值 自定义索引编解码器 要使用以下自定义编解码器格式的高级参数和 HNSW 算法的超参数,请确保在 solrconfig.xml 中设置此配置: <codecFactory class

    1.3K10

    全文检索工具solr:第二章:安装配置

    / localhost:8080 solr页面 基本查询 q  查询的关键字,此参数最为重要,例如,q=id:1,默认为q=*:*, fl  指定返回哪些字段,用逗号或空格分隔,注意:字段区分大小写...df   默认的查询字段,一般默认指定。 qt  (query type)指定那个类型来处理查询请求,一般不用指定,默认是standard。...version   查询语法的版本,建议不使用它,由服务器指定默认值。 检索运算符 “:”  指定字段查指定值,如返回所有值*:*  “?”  ..."/> FIle可以理解为数据库中的字段,相当于列 配置业务域 域 要想让solr能够存储信息,我们还得定义列,也叫域,相当于数据库中的字段 修改solrhome的schema.xml...type:指定域的类型 indexed:是否索引,可以按照该列进行搜索 stored:是否存储 required:是否必须 multiValued:是否多值,比如商品信息中,一个商品有多张图片,一个Field

    96940

    Solr集成Tomcat

    它的主要特性包括:高效、灵活的缓存功能,垂直搜索功能,高亮显示搜索结果,通过索引复制来提高可用性,提供一套强大Data Schema来定义字段,类型和设置文本分析,提供基于Web的管理界面等。...,然后对document进行分析(对各字段分词),得到一些索引目录写入索引库,document本身也会被写入一个文档信息库; 索引数据的查询 根据关键词解析(queryParser)出查询条件query...3、Solr:基于Solr实现站内搜索扩展性较好并且可以减少程序员的工作量,因为Solr提供了较为完备的搜索引擎解决方案,因此在门户、论坛等系统中常用此方案。...Name:域的名称 Type:域的类型 Indexed:是否索引 Stored:是否存储 multiValued:是否多值,如果是多值在一个域中可以保持多个值。...Type:域的类型 Indexed:是否索引 Stored:是否存储 multiValued:是否多值,如果是多值在一个域中可以保持多个值。

    1.4K10

    Solr集成Tomcat

    它的主要特性包括:高效、灵活的缓存功能,垂直搜索功能,高亮显示搜索结果,通过索引复制来提高可用性,提供一套强大Data Schema来定义字段,类型和设置文本分析,提供基于Web的管理界面等。...,然后对document进行分析(对各字段分词),得到一些索引目录写入索引库,document本身也会被写入一个文档信息库; 索引数据的查询 根据关键词解析(queryParser)出查询条件query...3、Solr:基于Solr实现站内搜索扩展性较好并且可以减少程序员的工作量,因为Solr提供了较为完备的搜索引擎解决方案,因此在门户、论坛等系统中常用此方案。...Name:域的名称 Type:域的类型 Indexed:是否索引 Stored:是否存储 multiValued:是否多值,如果是多值在一个域中可以保持多个值。...Type:域的类型 Indexed:是否索引 Stored:是否存储 multiValued:是否多值,如果是多值在一个域中可以保持多个值。

    1.6K30

    ElasticSearch的Mapping之字段类型

    ,同一个字段的值,一个分词,一个不分词 "ignore_above":100 //超过100个字符的文本,将会被忽略,不被索引 "include_in_all...值也会被分词 "position_increament_gap":0//影响距离查询或近似查询,可以设置在多值字段的数据上火分词字段上,查询时可指定slop间隔,默认值是100...precision_step:16 额外存储对应的term,用来加快数值类型在执行范围查询时的性能,索引体积相对变大 store:是否存储具体的值 (3)复合类型 数组类型:没有明显的字段类型设置...,任何一个字段的值,都可以被添加0个到多个,要求,他们的类型必须一致: 对象类型:存储类似json具有层级的数据 嵌套类型:支持数组类型的对象Aarray[Object],可层层嵌套 (4)地理类型...solr里面的copy_field字段功能一样,支持拷贝某个字段的值到集中的一个字段里面 2 properties mapping type,对象字段和嵌套字段可以包含子字段,这些属性可以被添加进去,

    2K50

    面试之Solr&Elasticsearch

    倒排索引,先抽取文档中词,并建立词与文档id的映射关系,然后查询的时候会根据词去查询文档id,并查询出文档 Solr过滤器 Solr的过滤器对接收到的标记流(TokenStream )做额外的处理过滤查询...而数据库中并不是所有的字段都建立的索引,更何况如果使用like查询时很大的可能是不使用索引,所以使用solr查询时要比查数据库快 solr索引库个别数据索引丢失怎么办 首先Solr是不会丢失个别数据的。...不同之处在于索引中的每个文档可以具有不同的结构(字段),但是对于通用字段应该具有相同的数据类型。...架构是描述文档类型以及如何处理文档的不同字段的一个或多个字段的描述。...Elasticsearch具有架构灵活的能力,这意味着可以在不明确提供架构的情况下索引文档。如果未指定映射,则默认情况下,Elasticsearch会在索引期间检测文档中的新字段时动态生成一个映射。

    2.7K10

    solr使用教程【面试+工作】

    通过对 Solr 进行适当的配置,某些情况下可能需要进行编码,Solr 可以阅读和使用构建到其他 Lucene 应用程序中的索引。...在 Solr 和 Lucene 中,使用一个或多个 Document 来构建索引。Document 包括一个或多个 Field。Field 包括名称、内容以及告诉 Solr 如何处理内容的元数据。...Field 可以使用大量的选项来描述,这些选项告诉 Solr 在索引和搜索期间如何处理内容。...表 1 概括了可控制 Solr 索引处理的各种因素: 属性描述useCompoundFile通过将很多 Lucene 内部文件整合到一个文件来减少使用中的文件的数量。...字段不可以是多值的(multi-value) 4.可以利用的函数 (available function) 1)constant:支持有小数点的常量; 例如:1.5 ;SolrQuerySyntax:_

    8.6K60

    使用Flink进行实时日志聚合:第二部分

    使用Flink将日志编入Solr 我们使用Flink和Solr构建日志获取/索引管道。Flink提供了所有必要的抽象来实现强大的日志索引器,并提供用于后期处理的其他功能,例如复杂的警报逻辑。...我们的提取流程非常简单: a) 传入JSON日志的Kafka源 b) 处理窗口和索引器以将日志摄取到Solr c) 用于日志监视和警报的任意自定义逻辑 让我们详细了解这些步骤。...尽管Solr可以处理大量要建立索引的数据(在Solr术语中称为文档),但我们要确保Flink和Solr之间的通信不会阻塞我们的数据管道。最简单的方法是将索引请求一起批处理。...索引错误处理 在此参考实现中,我们选择了一种简单的错误处理方法,其中我们只记录索引错误而不对它们采取任何措施。...ELK堆栈 Elasticsearch – Logstash – Kibana(又名ELK)堆栈通常用于收集和监视应用程序日志和指标。它应满足我们的流式应用程序具有的所有日志聚合要求。

    2K20
    领券