属性 |
描述 |
useCompoundFile |
通过将很多 Lucene 内部文件整合到一个文件来减少使用中的文件的数量。这可有助于减少 Solr 使用的文件句柄数目,代价是降低了性能。除非是应用程序用完了文件句柄,否则 false 的默认值应该就已经足够。 |
ramBufferSizeMB |
在添加或删除文档时,为了减少频繁的更些索引,Solr会选缓存在内存中,当内存中的文件大于设置的值,才会更新到索引库。较大的值可使索引时间变快但会牺牲较多的内存。如两个值同时设置,满足一个就会进行刷新索引. |
maxBufferedDocs |
|
mergeFactor |
决定低水平的 Lucene 段被合并的频率。较小的值(最小为 2)使用的内存较少但导致的索引时间也更慢。较大的值可使索引时间变快但会牺牲较多的内存。 |
maxIndexingThreads |
indexWriter生成索引时使用的最大线程数 |
unlockOnStartup |
unlockOnStartup 告知 Solr 忽略在多线程环境中用来保护索引的锁定机制。在某些情况下,索引可能会由于不正确的关机或其他错误而一直处于锁定,这就妨碍了添加和更新。将其设置为 true 可以禁用启动锁定,进而允许进行添加和更新。 |
lockType |
single: 在只读索引或是没有其它进程修改索引时使用. native: 使用操作系统本地文件锁,不能使用多个Solr在同一个JVM中共享一个索引. simple :使用一个文本文件锁定索引. |
属性 |
描述 |
maxBooleanClauses |
最大的BooleanQuery数量. 当值超出时,抛出 TooManyClausesException.注意这个是全局的,如果是多个SolrCore都会使用一个值,每个Core里设置不一样的话,会使用最后一个的. |
filterCache |
filterCache存储了无序的lucene document id集合,1.存储了filter queries(“fq”参数)得到的document id集合结果。2还可用于facet查询3. 如果配置了useFilterForSortedQuery,那么如果查询有filter,则使用filterCache。 |
queryResultCache |
缓存搜索结果,一个文档ID列表 |
documentCache |
缓存Lucene的Document对象,不会自热 |
fieldValueCache |
字段缓存使用文档ID进行快速访问。默认情况下创建fieldValueCache即使这里没有配置。 |
enableLazyFieldLoading |
若应用程序预期只会检索 Document 上少数几个 Field,那么可以将属性设置为 true。延迟加载的一个常见场景大都发生在应用程序返回和显示一系列搜索结果的时候,用户常常会单击其中的一个来查看存储在此索引中的原始文档。初始的显示常常只需要显示很短的一段信息。若考虑到检索大型 Document 的代价,除非必需,否则就应该避免加载整个文档。 |
queryResultWindowSize |
一次查询中存储最多的doc的id数目. |
queryResultMaxDocsCached |
查询结果doc的最大缓存数量, 例如要求每页显示10条,这里设置是20条,也就是说缓存里总会给你多出10条的数据.让你点示下一页时很快拿到数据. |
listener |
选项定义 newSearcher 和 firstSearcher 事件,您可以使用这些事件来指定实例化新搜索程序或第一个搜索程序时应该执行哪些查询。如果应用程序期望请求某些特定的查询,那么在创建新搜索程序或第一个搜索程序时就应该反注释这些部分并执行适当的查询。 |
useColdSearcher |
是否使用冷搜索,为false时使用自热后的searcher |
maxWarmingSearchers |
最大自热searcher数量 |
queryResultWindowSize | 因为查询参数是有start和rows的,所以某个QueryResultKey可能命中了cache,但start和rows却不在cache的 document id set范围内。当然,document id set是越大命中的概率越大,但这也会很浪费内存,这就需要个参数:queryResultWindowSize来指定document id set的大小。 |
queryResultMaxDocsCached | 查询结果最大缓存文档数量 |
通过solr的管理界面可以看到当前缓存的配置及状态:
package myplugin.handler; import org.apache.solr.handler.StandardRequestHandler; import org.apache.solr.request.SolrQueryRequest; import org.apache.solr.response.SolrQueryResponse; public class MySearchHandler extends StandardRequestHandler { public void handleRequestBody(SolrQueryRequest request, SolrQueryResponse response) throws Exception { super.handleRequestBody(request, response); //TODO: whatever you want } }
<requestHandler name="/test" class="myplugin.handler.MySearchHandler"> <lst name="defaults"> <str name="echoParams">explicit</str> <int name="rows">10</int> <str name="df">usergoods_mix</str> </lst> </requestHandler>别忘了把自己的jar包放到webapp/的WEB-INF的lib目录下。solr也为我们定制了别的handler,比如DisMaxRequestHandler,LukeRequestHandler,MoreLikeThisHandler
和SpellCheckerRequestHandler等等。大家可以自己看看源码,知道他们分别做什么。都在org.apache.solr.handler内。
我简单把实现代码帖一下,主要还是通过继承基础类,最后配置到solrconfig.xml内。
public class MySearchComponent extends SearchComponent {
String query = null;
@Override
public void prepare(ResponseBuilder rb) throws IOException {
query = rb.req.getParams().get("q", "");
System.out.println("prepare: " + query);
}
@Override
public void process(ResponseBuilder rb) throws IOException {
if (query != null) {
rb.rsp.add("mytest", "zbf"); // <str name="mytest">zbf</str>
// System.out.println("process: " + map.get("mytest").toString());
}
}
@Override
public String getDescription() {
return "MySearchComponent";
}
@Override
public String getSource() {
return "";
}
@Override
public String getSourceId() {
return "";
}
@Override
public String getVersion() {
return "0.1";
}
}
<requestHandler name="/test" class="myplugin.handler.MySearchHandler">
<lst name="defaults">
<str name="echoParams">explicit</str>
<int name="rows">10</int>
<str name="df">usergoods_mix</str>
</lst>
<arr name="components">
<str>query</str>
<str>myComponent</str>
</arr>
</requestHandler>
<searchComponent name="myComponent" class="myplugin.component.MySearchComponent">
</searchComponent>
先声明自己的searchComponent,然后放入handler里使用起来,注意配置顺序,因为component是按顺序串接起来的。
相关推荐
### Solr(Cloudera)使用手册 #### 一、创建Collection与管理实例 在使用Solr(Cloudera)时,创建Collection是基本的操作之一。Collection是Solr中的数据存储单元,相当于关系数据库中的表。 ##### 创建路径与实例 ...
Solr 6.0手册是一份详细介绍如何使用Solr的文档,它包括PDF格式的指南、目录,并且具备实用性。手册主要针对那些想要学习或部署Solr的用户。Apache软件基金会(ASF)是该软件及其手册的版权所有者,并根据一个或多个...
### Solr分词器使用手册知识点详解 #### 一、Solr概述 - **定义**:Solr是一款基于Java开发的、由Apache基金会维护的顶级开源项目,它是一款高性能的全文检索服务器。Solr不仅继承了Lucene的核心索引与搜索能力,还...
Solr 是一个开源的全文搜索引擎,它提供...理解Solr的核心概念,如核心、字段类型和索引,对于有效地使用和管理Solr至关重要。同时,保持对最新官方文档的了解,能够帮助你解决可能出现的问题,提升你的Solr应用能力。
《银河麒麟服务器操作系统-Solr适配手册》 在当今数字化时代,企业对高效、可靠的搜索引擎的需求日益增强。Apache Solr作为一个开源的企业级全文搜索引擎,因其强大的搜索功能和灵活的扩展性,在诸多领域中得到了...
### Solr 6.2 官方版参考手册知识点概览 #### 一、Solr简介与概述 **Apache Solr** 是一个高度可扩展且高性能的企业级...通过官方手册的学习,开发者可以更好地掌握 Solr 的使用技巧,从而构建出高效稳定的搜索应用。
本文将深入讲解 Solr 的使用及安装过程。 一、Solr 简介 Solr 基于 Lucene 库,提供了一个高度可配置和可扩展的平台,用于处理和索引大量数据,支持多种数据源,如文件、数据库等。其主要特性包括: 1. **全文搜索...
### Solr 安装与使用详解 #### 一、Solr简介 Solr 是一个高性能、采用Java开发的全文搜索引擎。它可以轻松地被集成到基于Web的应用程序...以上是 Solr 的安装、使用及 IKAnalyzer 集成的详细介绍,希望对您有所帮助。
### Solr安装手册知识点 #### 一、Solr简介与版本要求 - **Solr**是一种基于Lucene的开源全文搜索服务器。它提供了一个高性能、可伸缩的搜索平台,并支持复杂的查询语法以及多种索引格式。Solr适用于构建企业级...
本篇参考手册是针对Apache Solr 4.4版本的详细介绍,包含了从安装、配置到使用的详细步骤,以及对其背后原理的深入探讨。 首先,手册的Getting Started部分指导用户如何安装和设置Solr。这部分内容适合那些刚开始...
在实际应用中,Solr的部署和使用不仅涉及上述基础步骤,还需要考虑集群配置、性能优化、安全设置等多个方面。例如,通过SolrCloud实现分布式部署,利用Sharding和Replication提高可用性和性能,以及通过设置过滤器、...
### Solr的安装使用步骤详解 #### Solr概述与特性 **Solr** 是 Apache 下的一个顶级开源项目,它基于 **Lucene** 进行构建,提供了强大的全文搜索能力。相较于 Lucene,Solr 提供了更为丰富的查询语言支持,并且...
### Solr 3.* 使用手册知识点总结 #### 一、Solr简介与核心概念 - **Solr**:Apache Solr 是一个高性能、基于 Lucene 的全功能搜索引擎平台。它支持分布式搜索,并提供了丰富的功能集来满足企业级搜索需求。 - **...
确保你的系统已经安装了 JDK 及相应的运行环境,Solr 需要在 Java 1.6 或更高版本的 JVM 上运行。接着,将下载的 Solr 解压并将相关文件复制到 Tomcat 的 webapps 目录下,创建 Solr 的工作目录(solrHome),并配置...
solr使用和原理 简单明了的介绍了solr的使用和原理,及其部署方式,适合初学者第一次部署
"solr6.5使用的IK分词"就是一个针对Solr 6.5版本的中文分词解决方案。 **IK分词器** IK分词器(Intelligent Chinese Analyzer)是由Lucene社区开发的一款高性能的中文分词工具,适用于Java环境。它的主要目标是为...
《easynet.solr开发与使用》 在现代信息技术领域,搜索引擎已经成为不可或缺的一部分,而Apache Solr作为一款强大的开源搜索引擎,被广泛应用于各种数据检索场景。为了方便开发者更高效地集成和操作Solr,Easynet...
### Solr集群安装手册知识点详解 #### 一、SolrCloud概述 - **定义与应用场景:** - **定义:** SolrCloud 是 Apache Solr 提供的一种分布式搜索解决方案,适用于需要大规模、高容错性、分布式索引及检索能力的...
8. **搜索性能优化**:Solr提供了多种优化手段,包括使用倒排索引、缓存策略、查询优化器等,以提高查询速度和整体性能。 9. **安全与认证**:Solr 8.x引入了内置的安全性框架,包括Zookeeper的ACL和Solr的Role-...
Solr的多种性能优化技巧,如索引的性能优化、缓存的性能 优化、查询的性能优化、JVM和Web容器的优化,以及操作系统级别的优化。 拓展知识中首先讲解了Solr的一些比较生僻的知识点,如伪域、多语种索引支持、安全认证...