我在2个表格中的文档中创建了一个倒排索引:
现在我想选择在同一个storage_document中出现“cat”和“dog”字样的文档。
我的尝试是:
SELECT * FROM index_token INNER JOIN index_documents ON index_token.token_id = index_documents.token_id WHERE index_token.token ='cat' OR / AND index_token.token ='dog'
OR使第二个标记可选,所以我得到的文件有狗或猫,但不是狗和猫。 并没有给我任何结果。
那么我如何更改查询以获得预期结果?
它还应该接受2个以上的关键字。
答案 0 :(得分:1)
SELECT dog_docs.doc_id from
(
SELECT index_documents.doc_id
FROM index_documents
INNER JOIN index_token
ON index_token.token_id = index_documents.token_id
WHERE index_token.token = 'cat'
) cat_docs
INNER JOIN
(
SELECT index_documents.doc_id
FROM index_documents
INNER JOIN index_token
ON index_token.token_id = index_documents.token_id
WHERE index_token.token = 'dog'
) dog_docs
ON cat_docs.doc_id = dog_docs.doc_id