Apache Solr LocalParams性能

时间:2013-01-11 12:52:39

标签: performance solr

我刚刚遇到了Solr中的LocalParams,我想知道在使用LocalParams而不是指定参数的默认方式时是否存在任何性能影响。

为了举例说明我的意思,请考虑以下网址

默认

/select?q=dog&defType=dismax&qf=q_title_exact^20.0+q_title+q_suggest^0.5

LocalParams

/select?q={!type=dismax qf='q_title q_title_exact^20 q_suggest^0.5'}dog

虽然大小上的差异微不足道,但我可以将参数类型限制为一个,这对我来说非常有益。

但是,由于它们被称为本地 Params,我担心使用它们可能会对性能产生影响,例如没有正确缓存。

1 个答案:

答案 0 :(得分:2)

如果您使用localparams与默认方式相比,我认为您的缓存功能不重要。您提供的示例将相互完全相同。但是,LocalParams在以下情况下提供了优势(并且可以影响存储在缓存中的记录,具体取决于您是在进行标准搜索还是使用某些dismax / edismax搜索): -

假设您要搜索字段“A”匹配值“A1”且字段“B”匹配值“B1”的记录。此外,您希望基于dismax解析器匹配字段“A”,而字段“B”的匹配应基于solr的标准解析器完成。

据我了解LocalParams,以下代码(未经测试): -

/select?q=A:A1&fq=B:B1&defType=dismax&qf=A^20.0+B^0.5

不会达到目的,因为它会执行dismax搜索字段A和字段B.但是,以下代码(未经测试): -

/select?q={!type=dismax qf='A^20.0 B^0.5}A:A1&fq=B:B1

将在字段A中执行dismax搜索,而对字段B执行标准搜索。

因此,您可以说LocalParams可以帮助您执行“不同类型的搜索”。根据使用的参数,它们还有许多其他优点。