这是我的问题:
我有2个索引:
A - 仅限产品 B - 产品标题和产品说明
默认情况下,我搜索索引A以对产品进行分类(例如,大多数自行车在标题中都有“自行车”)。 有时会出现确定类别(可能是某些类别的子类别)的实例,我们需要查看描述,主要是为了排除不相关的结果。为了使搜索结果页面上的分页起作用,我需要在运行RunQueries()之后将此结果作为一个数组得到。
但它不起作用。它基本上添加了两个查询的结果,看起来没有办法减去结果。有人有什么想法吗?
答案 0 :(得分:0)
告诉我,如果我完全遗漏了某些内容,但听起来我觉得你试图在产品标题中包含与某个查询匹配的结果,并将结果排除在与其他查询匹配的描述之外?
如果是这种情况,在我看来,拥有2个索引是没用的,并且您可以拥有一个包含产品标题和描述的索引,然后运行全文搜索查询:
@title queryA @description -queryB
您只需删除 - 符号即可使用相同的查询来搜索具有queryA标题和queryB描述的匹配。
如果这是偏离基础的话,我能想到的另一种方法是使用SphinxQL(我对任何库都不熟悉,因为对不使用SphinxQL的所有库的支持正在逐步淘汰就我所读到的未来而言)
使用SphinxQL,您可以运行2个查询,一个类似
SELECT id FROM indexB WHERE MATCH('@description queryB')
然后使用您从第一个查询中获得的ID列表运行第二个查询
SELECT id FROM indexA WHERE id NOT IN(id1,id2,id3,...)