我的问题是:
我有两个索引:
A -仅产品名称B -产品标题和产品说明
默认情况下,我搜索索引A来对产品进行分类(例如,大多数自行车的标题中都有"bike")。有时在确定类别(可能是某物的子类别)的情况下,我们需要查看描述,主要是为了排除不相关的结果。为了在搜索结果页面上进行分页工作,我需要在运行RunQueries()后将这个干净的结果作为一个数组。
但是它不起作用。它基本上添加了两个查询的结果,看起来没有办法减去结果。有人有什么想法吗?
告诉我,如果我完全错过了一些东西,但它听起来像你试图包括与某个查询匹配的产品标题的结果,并排除与另一个查询匹配的描述的结果?
如果是这种情况,在我看来,有2个索引是无用的,你可以有一个索引与产品标题和描述,然后运行全文搜索查询如下:
@title queryA @description -queryB
您可以使用相同的查询来搜索标题为queryA和描述为queryB的匹配,只需删除-符号。
如果这是错误的,我能想到的唯一的其他方法是使用SphinxQL(我不是很精通任何一个库,因为所有不使用SphinxQL的库的支持将在未来逐步淘汰,据我所知)
使用SphinxQL可以运行两个查询,其中一个类似于
SELECT id FROM indexB WHERE MATCH('@description queryB')
然后使用从第一个查询中获得的id列表运行第二个查询,如
SELECT id FROM indexA WHERE id NOT IN(id1,id2,id3,...)