我有一个包含1.5万条记录的rt-index(posts)。我正在运行以下 查询该索引:
select id from posts where match('"word1 word2 word3 word4 word5"/3');
此后,我启动了相同的查询,但记录数量很少。像这样
select id from posts where id > 14900 and match('"word1 word2 word3 word4 word5"/3');
根据我的逻辑,此查询应仅在100条记录中搜索此单词,并且 查询执行时间应该更少。但事实并非如此。查询执行时间未更改。 然后,我从索引中删除了前14,900条记录,并再次运行了第二个查询。 这次,查询执行时间大大减少了。
这是否意味着quroum查询首先搜索整个索引中的所有匹配项 然后按ID过滤结果?如果是这样,我如何提高查询速度 第二种情况?
答案 0 :(得分:1)
全文本匹配首先运行。属性过滤器应用于全文匹配的结果。但是,有一个针对属性值的早期拒绝测试-如果属性值超出范围,则查询执行将停止(例如,如果您执行htmlTable
但索引中没有gid<10
的值)范围内的查询将快速完成,返回的结果为零)。