【发布时间】:2013-12-17 21:43:06
【问题描述】:
我正在使用构面查询来自动完成。
例如:
http://localhost:8983/solr/collection1/autocomplete_en?facet.prefix=sol&...
更新处理程序配置为执行软提交:
<updateHandler class="solr.DirectUpdateHandler2">
<updateLog>
<str name="dir">${solr.ulog.dir:}</str>
</updateLog>
<autoCommit>
<maxTime>30000</maxTime>
<openSearcher>false</openSearcher>
</autoCommit>
<autoSoftCommit>
<maxTime>1000</maxTime>
</autoSoftCommit>
</updateHandler>
但更新索引后,分面查询总是很慢。
该文档说,“软提交将使文档可见,但需要付出一些代价。... FieldValueCache 已失效,因此方面查询将不得不等到缓存刷新”
见http://searchhub.org/2013/08/23/understanding-transaction-logs-softcommit-and-commit-in-sorlcloud/
因此,即使在软提交之后,构面查询也总是很慢,因为必须重新计算 FieldValueCache。
带有 DocValues 的 Facet 是实时兼容的,但遗憾的是不支持 TextFields。 见http://wiki.apache.org/solr/DocValues
我必须对查询使用过滤器,所以我不能使用建议器组件。
我的问题:
- 还有机会使用带有分面的近实时搜索吗?
- 在弹性搜索中如何解决这个问题?
【问题讨论】:
标签: solr faceted-search