gpt4 book ai didi

使用 php 进行 Postgresql 文本搜索

转载 作者:行者123 更新时间:2023-11-29 12:34:03 26 4
gpt4 key购买 nike

我是 postgresql 和 php 的新手,但我希望实现全文搜索并且在查询文本搜索的基本查询时遇到问题,我想在屏幕上打印结果,因为它会在 postgres 本身中显示,帮助太好了。

谢谢。

最佳答案

你的问题中有很多概念,让我们过一遍:

首先你需要CREATE TABLE :

CREATE TABLE person (
id SERIAL PRIMARY KEY,
fullname TEXT NOT NULL,
dob DATE,
bio TEXT NOT NULL
);

插入一些测试数据:

INSERT INTO person (fullname, dob, bio) VALUES
('Steve Jobs', '1955-02-24', 'Steven Paul "Steve" Jobs...'),
('Tutankhamun', NULL, 'Tutankhamun (alternately spelled...');

为了加快搜索速度,您应该在计划搜索的列上创建全文索引:

CREATE INDEX person_fts ON person USING gin(to_tsvector('english', bio));

在您的 PHP 脚本中,您必须 connect to PostgreSQL :

$dbconn = pg_connect("dbname=mary");

现在您可以使用 pg_query() 进行全文搜索:

$words = "steve jobs";
$sql = "SELECT * FROM person WHERE to_tsvector(bio) @@ to_tsquery('$words')";
$query = pg_query($dbconn, $sql);
if(!$query)
die("An error occured.\n");

如果你想像在 psql 中看到的那样返回所有内容,那么将记录呈现为 TABLE :

echo "<table>";
while($row = pg_fetch_row($result)) {
echo "<tr>";
foreach($row as $cell)
echo "<td>{$cell}</td>";
echo "</tr>";
}
echo "</table>";

关于使用 php 进行 Postgresql 文本搜索,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11301993/

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