我是索尔的新手。我已经为一个SQL Server表索引了大约14列,其中有30万条记录进入Solr。索引最多需要15分钟。我存储了所有字段。所以我不必回到sql server查询。基本上我使用solr作为数据库并直接搜索它。没有唯一的密钥,但我只搜索了一个我搜索的列。 此列始终只包含1个字。
此列上的每次搜索都不会产生超过200条记录。在响应标题中 - 对于每个新的搜索文本 - 我可以看到QTime有时会是150,200,1350毫秒。我希望将其降低到不到50毫秒。
" responseHeader":{ "状态":0, " QTime":150 },
我是否可以通过进行一些小的配置更改而不进行分片来实现? 编辑添加: 我正在使用Solr 5.3.0。我没有排序或使用facet等。我的架构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 :(得分:0)
solr查询的性能取决于几个因素。
velvet pants
等过滤器参数搜索fq=category:apparel
,Solr将为该类别构建过滤器并将其添加到其缓存中。因此,当您使用term
和一些过滤器参数进行查询时,solr会在内部进行两次搜索,一次针对实际术语,另一次针对您提供的每个过滤条件。然后合并结果。如果任何部分已经在缓存中可用,那么它将直接从那里使用它。应配置size
,initialSize
和autowarmCount
参数,以便获得快速结果。您可以在此处找到有关solr cache的更多信息。
openSearcher
配置中将false
标记为autoCommit
。因为每次硬提交发生时它都会打开一个新的索引搜索器实例。您应该使用autoSoftCommit
配置将新索引加载到搜索器而不是硬提交。您需要使用这些参数来调整solr以进行快速搜索查询。