【发布时间】:2011-06-17 11:28:38
【问题描述】:
我有一系列产品。对于每个产品,我必须创建一个 solr 分面搜索。
以下“产品”的示例:
Computer
TV
MP3-Player
通过使用分面搜索,我想确定每种产品在 PRODUCT 字段中出现的频率。 结果如下
Comupter (3)
-apple
-ibm
-dell
TV (5)
-sony
-toshiba
[...]
MP3-player (10)
-[...]
现在,我意识到通过对每个单词/产品使用一个多面搜索。 这可行,但使用以下选项会在 400 毫秒内返回结果:
'facet' => 'true'
'facet.field' => 'PRODUCT'
'facet.method' => 'enum'
'facet.limit'=>200
'facet.mincount'=>4
'fq' => 'PRODUCT:computer' <- by iterating an array with PHP i change the product (computer,tv,...) on every iteration
不幸的是,在现实生活中没有 3 个产品(如上面的示例),大约有 100 个相关的产品。这意味着:PHP 脚本必须请求 100 次 solr 搜索,时间为 400 毫秒 - 所以脚本运行 40 秒,这太长了。 我无法对“所有”产品(没有“fq =”)进行无限制/无限制的多面搜索,因为有成千上万的产品,我不需要每个产品的信息。
有没有办法实现更好的性能,例如将多个 solr 请求合并为一个?
谢谢!
【问题讨论】:
-
我怀疑你会得到
"TV"的结果
标签: php lucene solr facet faceted-search