2015-09-17 105 views
1

我是Solr的新手。我已经将大约14列的SQL Server表编入索引,其中有300万条记录存入Solr。索引最多需要15分钟左右。我存储所有的字段。所以我不必回到sql server查询。基本上我使用solr作为数据库并直接在其上搜索。没有唯一的关键字,但是我只搜索了1列。 本专栏始终只包含1个单词。Solr缩短搜索时间

此列上的每个搜索将不会产生超过200条记录。在响应头文件中 - 对于每个新的搜索文本 - 我可以将QTime看作150,200,1350 ms有时。我想把它降低到不到50毫秒。

“responseHeader”:{ “状态”:0, “QTIME”:150 },

我可以不用分片只是做一些小的配置变化? 编辑补充: 我正在使用Solr 5.3.0。我不排序或使用方面等我的XML模式是:

<fields>   
    <field name="Postcode"       type="string" indexed="true" stored="true" required="true" />   
    <field name="PostTown"       type="string" indexed="false" stored="true" required="true" />    
    <field name="DependantLocality"     type="string" indexed="false" stored="true" required="false" /> 
    <field name="DoubleDependantLocality"   type="string" indexed="false" stored="true" required="false" /> 
    <field name="ThoroughfareName"     type="string" indexed="false" stored="true" required="false" /> 
    <field name="ThoroughfareDescriptor"   type="string" indexed="false" stored="true" required="false" /> 
    <field name="ApprovedAbbreviation"    type="string" indexed="false" stored="true" required="false" /> 
</fields> 

我已经收录的邮编,目前我只搜索通Solr的管理网站,如:邮编:WA168GS

谢谢。

+0

信息太少。你的schema.xml如何?你的solrconfig.xml如何?你正在使用哪个版本的Solr?你究竟如何查询?查询时你会排序吗?提交查询时是否使用其他功能(方面,更像这样等)? – cheffe

+1

您是否检查过关于该主题的文档? https://wiki.apache.org/solr/SolrPerformanceFactors或https://wiki.apache.org/solr/SolrPerformanceProblems – cheffe

+0

快速查询的外观如何,慢速查询的外观如何?可能您的问题与[深度分页](http://solr.pl/en/2011/07/18/deep-paging-problem/)有关,可通过[适当的分页](https:// cwiki。 apache.org/confluence/display/solr/Pagination+of+Results)。 – cheffe

回答

0

solr查询的性能可能取决于几个因素。

  1. 您在启动solr服务器时向JVM(堆)提供了多少内存。现在来了,如何使用这个记忆。 Solr为您提供三种不同类型的缓存,用于缓存先前的搜索结果。
    • filterCache:存储由Solr构建的过滤器,以响应添加到查询中的过滤器。如果您使用fq=category:apparel之类的过滤器参数搜索velvet pants,Solr将为该类别构建一个过滤器并将其添加到其缓存中。
    • queryResultCache:存储查询返回的文档ID组。
    • documentCache:该缓存包含Lucene Document对象(每个文档的存储字段)。

所以,当你犯了一个查询与term和一些滤波器参数,Solr的内部进行两次搜索,一个是实际刑期以及每个筛选标准您提供。然后合并结果。如果任何部分已经在缓存中可用,那么它将直接从那里使用它。应该配置size,initialSizeautowarmCount参数,以便您获得快速结果。您可以在这里找到更多关于solr cache的信息。

  1. 您应该保留openSearcher标记为falseautoCommit配置。因为每次发生硬性提交时它都会打开一个新的索引搜索器实例。您应该使用autoSoftCommit配置将新索引加载到搜索器而不是硬提交。

您需要使用这些参数来调整solr以实现快速搜索查询。

+0

谢谢你们!在Solr有很多东西需要很长的路要走。会让你更新。 – Mihir