나는 자동 완성을 위해 패싯 쿼리를 사용하고 있습니다. 예를 들어거의 실시간 Solr Facet 자동 완성을위한 쿼리
:
http://localhost:8983/solr/collection1/autocomplete_en?facet.prefix=sol&...
업데이트 핸들러가 softcommits을 수행하도록 구성되어 있습니다 :
<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가있는 패싯은 실시간으로 호환되지만 불행히도 TextField는 지원되지 않습니다. 참조 http://wiki.apache.org/solr/DocValues
쿼리에 필터를 사용해야하므로 suggester 구성 요소를 사용할 수 없습니다.
내 질문 :
- 은 페이스 팅과 거의 실시간 검색을 사용할 수있는 기회, 아직 있습니까?
- 탄성 검색에서이 문제가 어떻게 해결됩니까?