阅读 PostgreSQL 排名结果
Reading through PostgreSQL ranked results
我是 PostgreSQL 的新手,我正在研究 return 搜索词的词位置的函数。
我想首先缩小搜索必须经过的文本字段范围,以确保它是来自数据库的相关结果。
我的 table 名称是 'testing' 然后文本字段列称为 'context' 并且它所在的行号称为 'line_number'。上下文文本与特定 line_number.
关联的位置
现在我的排名代码如下所示:
select line_number into lineLocation
from (
SELECT
testing.line_number,
ts_rank_cd(to_tsvector('english', testing.context),
to_tsquery('Cats & Dogs & Kids')) AS score
FROM Testing
) ranking
WHERE score >0
ORDER BY score DESC;
Return QUERY select * from lineLocation;
当我尝试将 lineLocation 作为 return 查询打印出来时,它会报告新排名的行号 22,19,21,20,17,13 每个 returned自己的专栏。
我现在的问题是我想在每一行 (22 ... 13) 中搜索关键字 "dog" 和 return 其位置
使用以下方法获取文本:
select context into sample from testing
where testing.line_number = lineLocation;
如果我尝试在像 lineLocation -i 这样的循环中减少 lineLocation
它出了问题,最终会搜索不相关的上下文。
有什么类型的 'read next line' 函数可以使用吗?
我正在寻找一种方法来遍历排名结果行号
EDIT 然后我继续使用 for 循环,我希望它从排名结果中读取列上下文中的所有文本行
我遇到的问题是它只读取列 'context' 中的第一行文本,我需要它查看由 return 编辑的所有行排名搜索
最终创建了自己的排名函数,并将该文本搜索的结果插入到另一个具有序列增量列的 table 中。
使用以下代码填充新 table (ranked_results) 的值:
INSERT INTO ranked_results(sentence) VALUES (columnRanking());
我还必须创建一个函数来 delete/reset 插入更多行后新 table 中的列。
TRUNCATE table ranked_results RESTART IDENTITY;
我是 PostgreSQL 的新手,我正在研究 return 搜索词的词位置的函数。
我想首先缩小搜索必须经过的文本字段范围,以确保它是来自数据库的相关结果。
我的 table 名称是 'testing' 然后文本字段列称为 'context' 并且它所在的行号称为 'line_number'。上下文文本与特定 line_number.
关联的位置现在我的排名代码如下所示:
select line_number into lineLocation
from (
SELECT
testing.line_number,
ts_rank_cd(to_tsvector('english', testing.context),
to_tsquery('Cats & Dogs & Kids')) AS score
FROM Testing
) ranking
WHERE score >0
ORDER BY score DESC;
Return QUERY select * from lineLocation;
当我尝试将 lineLocation 作为 return 查询打印出来时,它会报告新排名的行号 22,19,21,20,17,13 每个 returned自己的专栏。
我现在的问题是我想在每一行 (22 ... 13) 中搜索关键字 "dog" 和 return 其位置
使用以下方法获取文本:
select context into sample from testing
where testing.line_number = lineLocation;
如果我尝试在像 lineLocation -i 这样的循环中减少 lineLocation 它出了问题,最终会搜索不相关的上下文。
有什么类型的 'read next line' 函数可以使用吗? 我正在寻找一种方法来遍历排名结果行号
EDIT 然后我继续使用 for 循环,我希望它从排名结果中读取列上下文中的所有文本行
我遇到的问题是它只读取列 'context' 中的第一行文本,我需要它查看由 return 编辑的所有行排名搜索
最终创建了自己的排名函数,并将该文本搜索的结果插入到另一个具有序列增量列的 table 中。
使用以下代码填充新 table (ranked_results) 的值:
INSERT INTO ranked_results(sentence) VALUES (columnRanking());
我还必须创建一个函数来 delete/reset 插入更多行后新 table 中的列。
TRUNCATE table ranked_results RESTART IDENTITY;