【发布时间】:2014-09-12 19:40:27
【问题描述】:
所以有一个 SOLR 查询,其中一个 fq 是 FunctionQuery
见http://wiki.apache.org/solr/FunctionQuery
这是我的fq之一
{!frange l=1}or(and(exists(not(query({!v='type:scu'}))), or(or(termfreq(nba,184887),termfreq(nba,15817823),termfreq(nba,15819703),termfreq(nba,15821195),termfreq(nba,15859845),termfreq(nba,15860041), ...and 2000 other termfreq() calls))),exists(query({!v='isn_field:400112'})),exists(query({!v='(type:scu AND (is_svad:(20332 OR 21017 OR 200662 OR 23 OR 2685 OR 653 OR 266035 OR 267 OR 26612 OR 566127 OR 264129 OR 266133)))'})))
我的问题是,如果我不使用 FunctionQuery,例如,如果我没有使用函数 or(termfreq(nba, number), termfreq(nba, number)) 语句,我只执行 solr query OR (nba:number1 OR nba:number2 OR nba:number3 ...etc),则此 FunctionQuery 的性能如何?
有没有办法进一步优化 FunctionQuery 使其变得更快?
【问题讨论】:
-
看看新的 Solr 4.10 terms filter 其中
more efficiently match many terms in a single field.
标签: java performance solr lucene search-engine