如果我试图在索引的Sphinx文本字段/表中找到与关键字的所有匹配项,是否有办法将所有记录一次加载到查询中,而不是一次加载一个?
换句话说,如果我有一个查询,例如
(Enjoy | Like | Love) << ($Language) << (Cuisine | Food | Dining)
我会更好地通过语言表中的每种语言来处理,以便我处理
(Enjoy | Like | Love) << Albanian << (Cuisine | Food | Dining)
通过
(Enjoy | Like | Love) << Mexican << (Cuisine | Food | Dining)
通过
(Enjoy | Like | Love) << Zimbabwean << (Cuisine | Food | Dining)
或者有没有办法一次处理所有这些并返回匹配:
(Enjoy | Like | Love) << (Albanian | ... | Mexican | ... | Zimbabwean) << (Cuisine | Food | Dining)
这样每条记录都是OR管道的一部分,我得到了所有匹配的列表?这是否可能,如果是这样,我在速度,CPU,RAM使用方面获得了什么?
答案 0 :(得分:0)
实际上,性能问题只能通过基准测试来回答。对性能的最大影响通常非常微妙
例如,在您的情况下,每种语言的结果数量可能是最大的因素。如果每个结果很少,那么第二个更好(避免运行大量查询而没有结果) - 但如果在大多数语言中有很多结果,那么可能差别很小。
但我猜这是我的观点。可能完全错了!
话虽如此,如果性能真的很重要,那么Use exact search with OR operator inside Sphinx query中提到的字形技巧可能有所帮助。基本上做更多工作(在索引期间)以使查询更快(更少工作)