首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Spring认证中国教育管理中心-Apache Solr 的 Spring 数据教程三

杂项 Solr 操作支持 本章涵盖了对无法通过存储库接口直接访问的 Solr 操作(例如分面)的额外支持。...为了向定义的字段添加特殊的方面选项,请使用FieldWithFacetParameters,如以下示例所示: // produces: f.name.facet.prefix=spring FacetOptions...您可以使用org.apache.solr.util.DateMathParser(例如,+6MONTHS+3DAYS/DAY表示未来六个月零三天,四舍五入到最近的一天)来定义此类字段的差距。...此外,可以为具有范围参数 ( org.springframework.data.solr.core.query.FacetOptions.FieldWithRangeParameters)的字段配置以下属性...其他:setOther(org.apache.solr.common.params.FacetParams.FacetRangeOther)定义范围分面的附加(其他)计数(例如范围分面开始之前、范围分面结束之后或什至开始和结束之间的文档计数

62720

【搜索引擎】配置 Solr 以获得最佳性能

Solr 能够设置结合容错和高可用性的 Solr 服务器集群。 在 setupSolrCloud 环境中,您可以配置“主”和“从”复制。使用“主”实例来索引信息,并使用多个从属(基于需求)来查询信息。...4.配置动态字段 Apache Solr 的一项惊人功能是 dynamicField。当您有数百个字段并且您不想定义所有字段时,它非常方便。 动态字段与常规字段一样,只是它的名称中带有通配符。...6.配置复制字段 Solr 提供了非常好的功能,称为 copyField,它是一种将多个字段的副本存储到单个字段的机制。...使用构面查询 Apache Solr 中的 Faceting 用于将搜索结果分类为不同的类别,执行聚合操作(如按特定字段分组、计数、分组等)非常有帮助,因此,对于所有聚合特定查询,您可以使用 Facet...facet:true/false 启用/禁用构面计数 facet.mincount:排除计数低于 1 的范围 facet.limit:限制结果中返回的组数,-1 表示全部 facet.field:该字段应被视为构面

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

    solr

    5.Solr基础 因为 Solr 包装并扩展了Lucene,所以它们使用很多相同的术语。更重要的是,Solr 创建的索引与 Lucene 搜索引擎库完全兼容。...还有一个特殊的字段copyField,一般用于检索时用的字段这样就只对这一个字段进行索引分词就行了copyField的dest字段如果有多个source一定要设置multiValued=true,否则会报错的...Field Facet Facet字段通过在请求中加入facet.field参数加以声明,如果需要对多个字段进行Facet查询,那么将该参数声明多次.例如: http://localhost:8983/...需要注意的是,使用Date Facet时,字段名,起始时间,结束时间,时间间隔这4个参数都必须提供.与Field Facet类似,Date Facet也可以对多个字段进行Facet.并且针对每个字段都可以单独设置参数.... facet.date:该参数表示需要进行Date Facet的字段名,与facet.field一样,该参数可以被设置多次,表示对多个字段进行Date Facet. facet.date.start:

    11.1K20

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

    "hl=true" 是开启高亮,"hl.fl= content " 是告诉solr 对 name 字段进行高亮(如果你想对多个字段进行高亮,可以继续添加字段,字段间用逗号隔开,如 "hl.fl=name...=true只有这样Facet组件才起作用. 1.Field Facet Facet字段通过在请求中加入facet.field参数加以声明,如果需要对多个字段进行Facet查询,那么将该参数声明多次.例如...Facet的算法,与执行效率相关. enum适用于字段值比较少的情况,比如字段类型为布尔型,或者字段表示中国的所有省份.Solr会遍历该字段的所有取值,并从filterCache里为每个值分配一个filter...需要注意的是,使用Date Facet时,字段名,起始时间,结束时间,时间间隔这4个参数都必须提供.与Field Facet类似,Date Facet也可以对多个字段进行Facet.并且针对每个字段都可以单独设置参数.... facet.date:该参数表示需要进行Date Facet的字段名,与facet.field一样,该参数可以被设置多次,表示对多个字段进行Date Facet. facet.date.start:

    1.4K70

    Apache Solr:深入探索与常见误区解析

    1.2 分布式搜索与分片 在面对大规模数据时,Solr 提供了分布式搜索的能力。数据可以被分布到多个分片(Shard)中,每个分片负责一部分数据的存储与查询,最终通过协调器汇总结果。...副本是同一分片的多个副本,保证高可用;而分片则是将数据水平切分,保证系统的可扩展性。正确的理解和配置副本与分片对集群的性能至关重要。...q=*:*&facet=true&facet.field=brand&facet.field=price" 常见误区:Faceting 功能的结果并不会自动排序。...常见误区:高亮结果并不会自动包含所有字段,你需要明确指定要高亮的字段,否则 Solr 只会对默认字段或你指定的字段进行处理。...q=category:phone&facet=true&facet.field=brand&facet.field=price" 常见误区:在处理用户搜索时,可能会使用分词器将查询拆分为多个词条,但错误使用分词器可能导致结果偏差

    16410

    Solr与ES多值存储的区别

    问题描述 今天发现一个问题, Solr存储多值字段的时候, 需要显式的指定, 如CITY是单值字段, FACET_VALUES是多值字段, 需要这么写: Solr的索引分析 先看Solr生成的Lucene索引的字段类型信息: 图片 因为CITY和FACET_VALUES都是int类型, 唯一的区别就是单值和多值, 这里能看出来Lucene字段的类型确实不同...所以CITY和FACET_VALUES的区别就在于存储的doc values类型不同. CITY这个简称是number, FACET_VALUES这个的简称是srtnum....好了, 到这里, 我们可以知道Solr里的单值和多值字段的底层区别是, 在Lucene存储时使用的doc values 类型不同. 单值的使用NUMERIC, 在luke中简称为number....图片 很明显, CITY和FACET_VALUES的底层Lucene字段类型完全相同. 而且都是DsrtnumT4/1, 和Solr中的FACET_VALUES完全一致.

    54040

    Solr与MySQL查询性能对比

    颜色代表的是不同的字段。 改成按列存储是这样的: ? 按列存储的话会把一个文件分成多个文件,每个列一个。对于每个文件,都是按照docid排序的。...看看Solr的Facet查询,只要540ms,快的不是一点点。.../Lucene的Facet(聚合)查询会这么快呢?...想想Solr/Lucene的索引数据的方式就清楚了:倒排索引。对于某个索引字段,该字段下有哪几个值,对于每个值,对应的文档集合是建立索引的时候就清楚的,做聚合操作的时候“统计”下就知道结果了。...水平拆分表: 由于本系统采集到的大量数据和“时间”有很大关系,一些业务需求根据“时间”来查询也比较多,可以按“时间”字段进行拆分表,比如按每月一张表来拆分,但是这样做应用层代码就需要做更多的事情,一些跨表的查询也需要更多的工作

    1.4K30

    SolrCloud6.1.0之SQL查询测试

    (2)理解map_reduce 和 facet两种聚合模式 A: map_reduce 模式,支持任意多字段的聚合查询,不受限制,但性能稍低 测试环境5个shard+3个副本 测试数据,必须大于...6(shard+1)条数据,否则会报错 可测 group+distict 执行流程如下: B:facet 模式,使用Solr原生的Json Facet Api 操作,受一定索引的限制,但性能较高...只要求有shard,有数据,即可测试,利用solr原生的Facet api进行聚合 (3)理解DocValue对SQL查询的影响 大部分情况下在Solr中的SQL查询,是需要加上limit关键词的...,如果你不加,要么你就会发现,你的查询可能会莫名其妙的报错 这个时候问题的原因大部分是跟DocValue有关的, Solr6要求,所有不加的limit查询的字段,必须全部是DocValue激活的 字段,...至于为什么必须要激活DocValue字段才能进行all字段提取查询,主要目的还是为了性能,想了解DocValue可以 参考散仙之前的文章:http://qindongliang.iteye.com/blog

    1.2K50

    搜索正在遍及世界

    除了索引字段以外,没有什么特别的要求 - Solr毫不费力。 这种功能的一个简单例子是通过集群算法丰富Solr文档。...一旦每个文档都用一个字段作为索引来指示其集群,就可以在Solr中非常轻松地探索这些集群的性质。首先,用户查看集群分解的每一个方面,并各自计数。...数据不能总是在没有许多烦人的副作用和限制的情况下被非规范化。Solr非常适合跨文档提供非常复杂的连接功能,包括添加模糊连接或自然语言连接。也许与原始查询的相关性可能会影响到第二个查询中的文档。...在我的演讲中,我谈到了这个问题 - 一旦我们从数据库中找到前5个最相关的专业术语,就可以用外行人的术语搜索法律专业术语数据库(汽车(car) - >机动车辆(motor-vehicle)),然后我们可以在...“法律用行话语料库”中的技术术语来搜索法律相关术语。

    70930

    【solr字段说明】Solr查询详解

    这节重点是讲Solr的查询相关的知识点 一、 查询参数说明 在做solr查询的时候,solr提供了很多参数来扩展它自身的强大功能!以下是使用频率最高的一些参数! ...张三&fq=CreateDate:[20081001 TO 20091031],找关键字mm,并且CreateDate是20081001 fl - 指定返回那些字段内容,用逗号或空格分隔多个。 ...统计field  【注:以上是比较常用的参数,当然具体的参数使用还是多看Solr官方的技术文档以及一些大神的博文日志,这里只是抛砖引玉】 二、 Solr运算符 1. “:” 指定字段查指定值,如返回所有值...表示单个任意字符的通配 3. “*” 表示多个任意字符的通配(不能在检索的项开始使用*或者?...,一般建议是在单个字段里进行条件筛选,如( Name:张 OR 李),多个字段查询(Name:张 + Address:北京 ) 3.排序,比如根据姓名升序(Name asc),降序(Name desc)

    2.4K30

    SolrLucene优劣势分析

    (12) 一个core 对应多个子目录,查询既可以查指定子目录也可以全部子目录查,以及更新某个子目录索引或者全部子目录索引,solr也不能直接支持,而这些在大数据量的时候是需要支持这些功能的。...如果document 的不变字段来源多个源的话,IO、计算资源有些浪费,如果更新量不大还好。—当然可以对更新的单独开辟内存来处理,而更大的那个基本索引不去动他。 (14)solr不支持第三方条件过滤。...(24) 基于位操作的高级应用还不够灵活,例如boolean 存储和facet、byte[] 存储和facet、group等,支撑仍然不够友好。...最常见的就是更新时间、上传时间等,占了非常大的term比例 (28)multivalue 字段,实质是建立多个相同域名的字段,并不是一个域。对于域值很多内容的话,只好和在一起保存。...任务交给应用自己斟酌,实际上solr单节点对于命中超过100w的,并多字段排序的时候,cache失效时性能非常糟糕的。

    1.2K40

    三、Solr管理控制台(二)

    ) - 同义词解析器 LCF解析器(LowerCaseFilter) - 小写转换解析器 我们可以通过managed-schema的配置文件来查看下content字段的配置吧,来增进我们的理解,我们从solr...管理控制台,点击dataimport菜单 选择完数据源后点击Execute按钮,等待数据导入完成,当然导入的数据如果字段不存在的话,需要实现在manage-schema配置文件中进行配置并重启Solr...rows:分页获取数据时用到,start:从第几条记录开始,rows:从starts位置获取几条数据 fl:字段列表,获取查询的结果集字段列表 df:默认查询字段 hl:高亮查询使用 facet...,显示如下: Indexed:这个字段可被索引 Stored:这个字段会被存储到索引文档数据 MultiValues:这个字段是否可以存储多个值 其他几个属性目前还未知,等后续了解清楚后再补充...,界面如下: 动态字段类似添加字段 3.Add Copy Field:添加拷贝字段,拷贝字段主要是将索引文档的多个字段映射到该字段,后续可通过查询该字段实现多个字段的查询功能,配置界面如下:

    1.6K10

    面试之Solr&Elasticsearch

    而数据库中并不是所有的字段都建立的索引,更何况如果使用like查询时很大的可能是不使用索引,所以使用solr查询时要比查数据库快 solr索引库个别数据索引丢失怎么办 首先Solr是不会丢失个别数据的。...群集是一个或多个节点(服务器)的集合,它们共同保存您的整个数据,并提供跨所有节点的联合索引和搜索功能。群集由唯一名称标识,默认情况下为“elasticsearch”。...不同之处在于索引中的每个文档可以具有不同的结构(字段),但是对于通用字段应该具有相同的数据类型。...架构是描述文档类型以及如何处理文档的不同字段的一个或多个字段的描述。...或者,您可以组合内置的字符过滤器,编译器和过滤器器来创建自定义分析器。 什么是ElasticSearch中的编译器? 编译器用于将字符串分解为术语或标记流。

    2.1K10

    Solr Group源码分析

    官方文档https://solr.apache.org/guide/8_6/result-grouping.html 功能描述近似于facet, 相当于facet结果的每个桶里追加上几个桶内的文档.几个关键点分桶字段...)桶内文档返回哪些字段 (fl)执行过程分两阶段执行:阶段1: 确定返回哪些桶, 以及桶的排序....比如说sort=score desc, 那么每个桶的排序值就是桶内所有文档得分取max. 比如说sort=field1 asc, 那么每个桶的排序值就是桶内所有文档的field1字段值取min.....每个shard返回自己的Top N个group时, 每个group会带上其最佳文档排序值(即sortValue).协调节点对多个shard返回的桶列表做合并, 把每个数据节点返回的 Top N个桶最终合并为全局的...具体的合并逻辑就和正常搜索合并多个shard的文档列表一样的, 无非是每个group下的文档列表单独走一遍合并逻辑.

    39040

    23个有用的Elasticsearch示例查询

    : ["title", "authors", "summary", "publish_date", "num_reviews", "publisher"] } } } 作为对多个字段运行相同查询的便捷缩写方式...在下面的示例中,我们指定了我们想要返回的结果数,从开始的偏移量(对分页有用),我们想要返回的文档字段以及术语突出显示。...提高 由于我们正在搜索多个字段,因此我们可能希望提高某个字段的分数。在下面的设计示例中,我们将摘要字段的得分提高了3倍,以增加摘要字段的重要性,这反过来又会增加_id 4文档的相关性。...通配符查询 通配符查询允许您指定要匹配的模式而不是整个术语。 ? 匹配任何字符和 * 匹配零个或多个字符。...在下面的示例中,我们对术语“搜索算法”执行模糊搜索,其中一个书籍作者是“grant ingersoll”或“tom morton”。我们搜索所有字段,但在摘要字段中应用2的提升。

    9.8K20

    浅谈Lucene中的DocValues

    前言: 在Lucene4.x之后,出现一个重大的特性,就是索引支持DocValues,这对于广大的solr和elasticsearch用户,无疑来说是一个福音,这玩意的出现通过牺牲一定的磁盘空间带来的好处主要有两个...的排序字段然后再次构建一个最终的排好序的文档集合list,这个步骤的过程全部维持在内存中操作,而且如果排序数据量巨大的话,非常容易就造成solr内存溢出和性能缓慢。...通过上面的剖析,散仙相信大家已经对DocValues有一个初步的了解了,至于它的应用场景,那么也非常明显了,总结起来主要以下几个方面: 1,需要聚合的字段,包括sort,agg,group,facet...SORTED_SET作为docvalue存储 注意,分词字段存储docvalue是没有意义的 (五)如何在Lucene,Solr,ElasticSearch中使用DocValues?...最后再提一点,在和solr和es中,如果想要在自己写的插件中读取docvalue的值,读取方法和lucene的差不多,需要注意doule和float的的值转换。

    2.8K30

    solr docvalues类型

    solr是使用经典的倒排索引模式来达到快速检索的目的,简单的说就是建立 搜索词=》 文档id列表 这样的关系映射, 然后在搜索时,通过类似hash算法,来快速定位到一个搜索关键词,然后读取其的文档id集合...,而且如果排序数据量巨大的话,非常容易就造成solr内存溢出和性能缓慢。...通过上面的剖析,散仙相信大家已经对DocValues有一个初步的了解了,至于它的应用场景,那么也非常明显了,总结起来主要以下几个方面: 1,需要聚合的字段,包括sort,agg,group,facet...等 2,需要提供函数查询的字段 3,需要高亮的字段 4,需要参与自定义评分的字段 docValues特性支持的字段类型: A: 字符串或UUID字段+单值 会选择SORTED作为docvalue...+多值 会选择SORTED_SET作为docvalue存储 注: 1.修改schema.xml中字段的docValues属性后需要在更新完solr config后重新更新索引才能生效 2.设置为docValues

    44820

    了解Solr

    还添加了高亮、facet等搜索引擎常见功能的支持 Solr 的搭建运行 1、解压solr-4.6.0.zip到你想到存放的路径,比如:e:/solr 2、cmd打开命令行窗口,进入E:/solr/example...true--此字段为必需,如果此字段的内容为空,会报异常;false--不是必需 (6)、multiValued:此字段是否可以保存多个值? (7)、omitNorms:是否对此字段进行解析?...id,solr索引库中最好定义一个用于标示document唯一性的字段,此字段主要用于删除document。...4、 实际项目中为了方便查询,我们会把多个需要查询的字段合并到一个字段里,方便查询。...,即索引库是定死的,不会再更改 (2)、native:使用本地操作系统的文件锁方式,不能用于多个solr服务共用同一个索引库。

    1.5K20
    领券