1. 字段配置()
.xml位于solr/conf/目录下,类似于数据表配置文件。
定义添加到索引的数据的数据类型,主要包括类型,以及其他默认设置。
1、我们先看type节点,它定义了子节点,包括name、class等参数。
name: 这是这个的名字。
class:指向org..solr中对应的类名。 包,用于定义该类型的行为。
=“0”/>
=“0”/>
=“0”/>
=“0”/>
...
...
=“0”/>
=“0”/>
=“0”/>
=“0”/>
...
...
如果需要,需要定义索引和查询此类数据时使用的分析器,包括分词和过滤,如下:
=“真”
单词=“.txt”
ents=“真”
/>
=“1”=“1”=“1”
=“0”=“1”/>
=“.txt”/>
=“真”/>
=“真”
单词=“.txt”
ents=“真”
/>
=“1”=“0”=“0”
=“0”=“1”/>
=“.txt”/>
2、我们看一下节点中定义的具体字段(类似数据库字段)
包含以下属性:
名称:字段名称
type:之前定义的各种类型
: 是否被索引
:是否存储(如果不需要存储对应字段值,尽量设置为false)
:是否有多个值(可能有多个值的字段尽量设置为true,避免构建索引时抛出错误)
3、建议创建复制字段,将所有全文字段复制到一个字段中,以便统一检索:
以下是复印设置:
4.动态字段、没有具体名称的字段、使用字段
例如:name为*_i,其类型定义为int,那么在使用该字段时,任务结果带有_i的字段都被认为符合该定义。 喜欢,
2..xml文档注释中的信息
1、为了提高性能,可以采取以下措施:
将所有仅用于搜索且不需要作为结果的字段(尤其是一些较大的字段)设置为 false
将不需要用于搜索、只是作为结果返回的字段设置为 false
删除所有不必要的语句
为了尽量减少索引字段,提高搜索效率,将所有文本设置为索引字段,然后将其复制到通用文本字段中,然后进行搜索。
为了最大化搜索效率,使用Java编写的客户端与Solr交互(使用流通信)
在服务器端运行JVM(消除网络通信)并使用尽可能高的Log输出级别来减少日志量。
2. 姓名
name:标识此的名称
:当前版本是1.2
3.
姓名:仅供识别。
类和其他属性决定了它的实际行为。 (以solr开头的类都在org..solr.包下)
可选属性:
这两个属性用于可以在内部使用排序的类型(包括:,,sint,slong,,,pdate)。
="true",不带该字段的数据排在带该字段的数据之后,无论请求时的排序规则如何。
="true",只需与上面相反即可。
这两个值默认都设置为 false。
类型不会被分析,而是逐字索引/存储。
并且都有一个可选属性“”,保证被压缩到不小于一个大小(单位:char)
索尔。 允许用户通过分析器自定义索引和查询,分析器包括分词器()和多个过滤器()
:可选属性,定义同一文档中此类数据的空白间隔,以避免短语匹配错误。
空间分词,精确匹配。
分段和匹配时,请考虑“-”连字符、字母数字边界和非字母数字字符,以便“wifi”或“wi fi”可以匹配“Wi-Fi”。
同义词
在禁用 word() 删除后添加短语之间的间距
:即在索引过程(索引和搜索)过程中被忽略的词,例如is this等常见词。 维护在conf/.txt中。
4.
姓名:仅供识别。
type:之前定义的类型。
:是否用于建立索引(与搜索和排序相关)
:是否保存
:[false],是否使用gzip压缩(仅且可压缩)
: 是否包含多个值
:是否忽略Norm可以节省内存空间。 只有全文字段和需要索引时间提升的字段才需要norm。 (不太明白细节,评论有矛盾)
:[false],当设置为true时,term将被存储。 使用时,应存储用作相似词的字段。
:存储term中的地址信息会消耗存储开销。
:存储term的偏移量会消耗存储开销。
:如果没有需要修改的属性,可以使用该标记。
实现了一个包罗万象(有点夸张)的字段,包括所有可搜索的文本。
添加索引时,将复制字段(如cat)中的所有数据复制到文本字段中。
影响:
将多个字段的数据放在一起并同时搜索以提高速度
将数据从一个字段复制到另一字段可以通过两种不同的方式创建索引。
如果字段名称不匹配,将使用动态字段来尝试匹配各种定义的模式。
“*”只能出现在模式的开头和结尾
较长的模式将首先匹配
如果两个模式同时匹配,则第一个定义的模式优先。
如果通过上面的匹配没有找到,可以定义这个,然后定义一个类型进行处理。 (一般不会发生)
但如果没有定义的话,如果没有找到匹配就会报错。
5.其他一些标签
ID
文档的唯一标识符。 该字段必须填写(除非该字段被标记为=“false”),否则Solr在构建索引时会报错。
文本
如果搜索参数中未指定特定字段,则这是默认域。
配置搜索参数短语之间的逻辑,可以是“AND|OR”。
3..xml
1. 索引配置
标记段定义了一些控制 Solr 索引处理的因素。
:通过将许多内部文件合并到一个文件中来减少使用的文件数量。 这可以帮助减少 Solr 使用的文件句柄数量,但会牺牲性能。 除非应用程序用完文件句柄,否则默认值 false 应该足够了。
:通过将许多内部文件合并到一个文件中来减少使用的文件数量。 这可以帮助减少 Solr 使用的文件句柄数量,但会牺牲性能。 除非应用程序用完文件句柄,否则默认值 false 应该足够了。
:确定合并段的频率。 较小的值(最小 2)使用较少的内存,但会导致索引时间较慢。 值越大,索引时间越快,但会占用更多内存。 (典型的时间和空间平衡配置)
:定义在合并内存文档和创建新段之前需要索引的最小文档数。 段是用于存储索引信息的文件。 值越大,索引时间越快,但会占用更多内存。
:控制Solr可以合并的最大数量。 较小的值(
:对于给定的情况,控制可以添加到字段以及文档中的最大条目数。 如果文档可能很大,则可能需要增加该值。 但是,将此值设置得太高可能会导致内存不足错误。
:告诉 Solr 在多线程环境中忽略用于保护索引的锁定机制。 在某些情况下,索引可能由于不正确的关闭或其他错误而保持锁定状态,从而阻止添加和更新。 将其设置为 true 将禁用启动索引,从而允许进行添加和更新。 (锁定机构)
2.查询处理配置
查询标记段的以下独立于缓存的功能包括:
:定义可以组合形成查询的术语数量的上限。 通常 1024 就足够了。 如果您的应用程序大量使用通配符或范围查询,则增加此限制将避免在超出该值时抛出离子。
ng:如果应用程序只检索几个字段,则可以将此属性设置为 true。 当应用程序返回搜索结果列表,并且用户经常单击其中一个来查看存储在索引中的原始文档时,会发生延迟加载的常见场景。 最初的现实往往只需要有关现实的短时间信息。 如果您要检索较大的文档,除非必要,否则应避免加载整个文档。
查询部分负责定义与Solr中发生的时间相关的几个选项:
概念:Solr(实际上)使用一个名为 Query 的 Java 类来处理 Query 实例。 将与索引内容相关的数据加载到内存中。 根据索引的大小和 CPU 可用的内存,此过程可能需要很长时间。 为了改进这种设计并显着提高性能,Solr 引入了一种“预热”策略,在将这些新服务器上线为实时用户提供查询服务之前对其进行“预热”。
以及可用于制定在实例化新实例或第一个实例时应执行哪些查询的事件。 如果应用程序希望请求某些特定查询,则应取消注释这些部分,并在创建新查询或第一个查询时执行适当的查询。
查询中的智能缓存:
:过滤器允许 Solr 通过存储与给定查询匹配的无序文档 ID 集来有效提高查询性能。 缓存这些过滤器意味着重复调用 Solr 可以快速查找结果集。 更常见的场景是缓存过滤器,然后发出后续的细化查询,该查询使用过滤器来限制要搜索的文档数量。
:缓存查询的文档 ID 的有序集合、排序标准和请求的文档数量。
:cache,使用内部文档 id(以免与 Solr 唯一 id 混淆)。 由于内部 ID 可能会因索引操作而更改,因此该缓存无法自预热。
命名:命名缓存是用户定义的缓存,可供 Solr 自定义插件使用。
其中,Named(如果实现了org..solr..)可以自热。