gpt4 book ai didi

android - sqlite 对全文搜索中的匹配项进行加权

转载 作者:行者123 更新时间:2023-12-03 17:48:02 25 4
gpt4 key购买 nike

我有一个这样的 fts3 表:

 CREATE VIRTUAL TABLE docs USING fts3(id, title, body);
我想让标题中的匹配权重高于内容中的匹配,例如 this question
我做了什么:
    SELECT    
case when title match 'word' then 1 else 0 end as titleRank,
case when body match 'word' then 1 else 0 end as contentRank
docs.*
FROM docs
WHERE title match 'word' OR body match 'word'
ORDER BY titleRank desc, contentRank desc
但似乎 select case不适用于全文搜索(我使用 this tool ,没有错误,此查询没有响应,但如果我删除 select case ,它可以工作)
我哪里错了?

最佳答案

有这个offsets function这可能有用。在您的情况下,您知道标题列是索引 1,正文列是索引 2,因此您可以这样写:

SELECT *
FROM docs
WHERE docs MATCH 'title:word OR body:word'
ORDER BY SUBSTR(OFFSETS(docs), 1, 1), id;

这会将在第 1 列(标题)中匹配的行排在第 2 列(正文)中匹配的行之前。

(编辑了 OFFSETS() 函数上右括号的位置。)

关于android - sqlite 对全文搜索中的匹配项进行加权,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32432102/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com