Solr:在多个字段中搜索但如果找到文档匹配则停止

时间:2011-04-25 22:09:31

标签: lucene solr

我想在Solr的多个字段中搜索。 (知道复制字段的概念,我知道(e)dismax搜索处理程序。)

所以我有一个有序的字段列表,我想要搜索这些术语。 1.)SKU 2.)姓名 3.)描述 4.)总结 等等。

现在,当查询与一个术语匹配时,让我们说在SKU字段中,我想要这个匹配,并且在前面的字段中没有进一步的搜索。

仅在第一个字段(SKU字段)中根本没有匹配时,应使用第二个字段(在本例中为“name”),依此类推。

Solr可以实现吗? 我是否必须为此实现自己的Lucene Search Handler?

欢迎任何建议!

谢谢你, 哈德

2 个答案:

答案 0 :(得分:2)

我认为您的案例需要执行4次不同的搜索。如果你实现了自己的SearchHandler,你可以避免在4个不同的请求中对搜索结果累积的惩罚。这意味着,您将发送一个查询,自定义SearchHandler将执行4次搜索并准备一个结果集。

答案 1 :(得分:0)

如果我猜对了,你想根据字段的顺序对结果进行排名。如果是这样,那么您可以使用标准查询,如

q = sku :(查询)^ 4或名称:(查询)^ 3或描述:(查询)^ 2或摘要:(查询)

这将按字段的顺序对结果进行排名。

希望是有帮助的。