我们遇到与非相关的搜索结果的问题被返回在我们的搜索最高的搜索结果,我们正在努力改善这种行为,但真的不知道如何。草堆/ Solr的提升的结果,如果查询是在一个特定领域
我们SearchIndex有大约十几个领域。 document = True字段是我们将大部分内容放入的模板支持字段。其中的一些东西比其他东西的相关性要差得多,即使它仍然有用。
举一个具体的例子:如果“红玫瑰”进行搜索,我们要返回红玫瑰作为顶级的结果......如果更好的降低效果只是玫瑰或正当红,甚至被描述为在颜色上是“玫瑰红”。
的问题是,我们的文档=真正的现场有一吨的项目被描述为“玫瑰红”。更糟糕的是,实际的红玫瑰没有“红”和“玫瑰”,因为这些值将来自不同的领域。因此,我们得到几百个完全不相关的结果。
我们希望做的是两种:
A.搜索的主文件,然后相应地搜索我们每一个其他领域和提升(但不硬滤波器)。如果术语“玫瑰”出现在其中一个项目名称中,并且“红色”显示为其中一个属性值,则该结果应该具有较高的分数。这给了我们在理论上按照相关性排序的最佳结果。
B.搜索一次,促进如果值是任何的“增强型”字段中的所有领域。
似乎使用字段提升应该是答案,但我们无法弄清楚如何表达它,因为基于字段的过滤是严格的排除,我们希望它只影响相关性评分。
这两个结果实际上是相同。我们只是无法弄清楚如何用Haystack做他们任何一个。或者如果我们不得不退回到原始查询如何写一个solr查询来完成这个。
你可以发表你的文件的例子,告诉哪些你想排名更高,哪些更低? – arun 2013-02-17 04:31:27