0

我有一个设置,其中我在 solr 中有两个索引:product_code 和 title。product_code 使用 StrField,title 使用带有 DoubleMetaphone 的 TextField。

我有一个搜索框供用户输入产品代码或自由文本进行标题搜索。我目前正在使用 dismax 并做 qf=product_code 标题。我遇到的问题是,一旦应用了 DoubleMetaphone,产品代码(例如 LC12345)通常可能与标题中的单词匹配。

所以我想要做的是以这样一种方式构造一个查询,它首先将查询词应用于 product_code 索引,并且只有在没有匹配项时才查询词应用于标题索引。有没有办法做到这一点而不必对 Solr 进行两个单独的查询?这是针对 AJAX“实时搜索”的,所以我想将延迟保持在最低限度,所以不想对 Solr 进行两个单独的查询。

-马特

4

1 回答 1

0

答案是——不。如果我说对了,您需要类似的东西。如果答案 = oq=Y,则 q=X。Solr 中没有这样的功能。即使 solr 需要两次查询索引,这与使用两次查询相同。

我建议您仅使用一个查询(如果它真的需要)来改进您的应用程序是使用查询助推器。如果你设置类似

产品代码:查询^5 和标题^1

在您的 solrconfig 中为您的索引数据。这将使您的 product_code 结果位于顶部,标题位于底部附近。如果没有 product_code,则只有标题结果。

我希望这会有所帮助

于 2011-07-27T10:54:33.710 回答