我的虚拟表是:
CREATE VIRTUAL TABLE docs USING fts4();
INSERT INTO docs(docid, content) VALUES(1, 'sqlite is a database');
INSERT INTO docs(docid, content) VALUES(2, 'my database is sqlite');当我使用这个查询时:
SELECT * FROM docs WHERE docs MATCH 'sqlite AND database';它返回表中的两条记录,因为这两条记录都包含术语"sqlite“和术语"database”。
现在,我想使用以下规则搜索包含术语"sqlite“和术语"database”的记录:
术语在文档中出现的顺序必须与它们在查询中出现的顺序相同(仅限docid为1的文档)。
有可能吗?
发布于 2017-12-08 19:17:22
FTS queries不能限制术语的顺序,但需要连续术语的短语搜索除外(例如,"sqlite database"与sqlite is a database不匹配)。
您必须在之后限制结果:
SELECT ... WHERE docs MATCH 'sqlite AND database'
AND content LIKE '%sqlite%database%';https://stackoverflow.com/questions/47713226
复制相似问题