gpt4 book ai didi

sql - PostgreSQL 上的全文搜索

转载 作者:行者123 更新时间:2023-11-29 11:31:08 24 4
gpt4 key购买 nike

现在我正在学习 PostgreSQL 9.2.3 中的全文搜索。但是,我有一个问题。我运行这个例子:

CREATE TABLE messages (title text,body text,tsv tsvector);

CREATE TRIGGER tsvectorupdate
BEFORE INSERT OR UPDATE ON messages FOR EACH ROW EXECUTE PROCEDURE
tsvector_update_trigger(tsv, 'pg_catalog.english', title, body);

INSERT INTO messages VALUES('title here', 'the body text is here');

不幸的是,之后:

SELECT title, body FROM messages WHERE tsv @@ to_tsquery('title & body')

我没有得到任何结果 - 返回 0 行。你能告诉我为什么吗?根据 PostgreSQL 的文档,它应该可以工作。

只有“titl”和“bodi”作为查询才能获得适当的结果。为什么?

最佳答案

to_tsquery 只有一个参数使用默认的文本搜索配置,在您的情况下这似乎不是英语。

您可以使用带有显式文本配置的表单来获得预期的结果:

SELECT title, body FROM messages
WHERE tsv @@ to_tsquery('english', 'title & body')

在 SQL 中使用 SHOW default_text_search_config 查看有效的文本配置,并使用 SET default_text_search_config TO 'english' 将其更改为英语。

关于sql - PostgreSQL 上的全文搜索,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18174712/

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