gpt4 book ai didi

php - 多词搜索引擎查询

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

我有这段代码可以转换我输入到数组中的单词,然后应该在数据库中搜索该数组。数据库中包含爬虫在网站中扫描的单词行。

数组代码似乎不起作用:( 我的查询如下:

        if( isset($_POST['keyword']) ){
$k = $_POST['keyword'];
}else{
$k = '';
}
$k = ( isset($_POST['keyword']) )? trim($_POST['keyword']) : '';
$terms = (strlen($k) > 0)? explode(' ', $k) : Array();

$keyword = addslashes( $k);
$results = addslashes( $_POST['results'] );

/* Execute the query that performs the actual search in the DB: */
$result = mysql_query(" SELECT p.page_url AS url,
COUNT(*) AS occurrences
FROM page p, word w, occurrence o
WHERE p.page_id = o.page_id AND
w.word_id = o.word_id AND
w.word_word = \"$keyword\"
GROUP BY p.page_id
ORDER BY occurrences DESC
LIMIT $results" );

最佳答案

您的问题标题为“多词搜索引擎”,但此代码(SQL 部分暗示经过深思熟虑的索引)无法容纳多个词。事实上,PHP 代码是乱码。它首先使用 if 表达式设置 $k 的值。然后使用三元运算符将其设置为相同的值。

您没有提供您正在使用的搜索词的示例,也没有提供从中生成的查询。您也没有提供任何“似乎不起作用”的解释。

我建议你去和编写爬虫和搜索数据库的人谈谈——他们会解释如果你有多个术语,那么你要么需要以非常不同的方式将文字值拼接到查询中,要么加载它们(暂时)放入一个表中并将其与搜索查询连接起来。他们还应该给你一条大鱼,告诉你去学习 SQL 注入(inject)。

例如

...
$qry=searchQuery($_POST['keywords'], $dbh);
if ($qry) {
$limit = (integer) $_POST['results'] ? (integer) $_POST['results'] : 20;
$qry.=" LIMIT $limit";
result=mysql_query($qry, $dbh);
} else {
...
exit;
}
...

function searchQuery($keywords $dbh)
{
if (''==$keywords) return false;
$keywords=str_replace(' ', ' ', $keywords); // remove consecutive spaces
$keywords=str_replace(' ', ' ', $keywords); // cos you might have an odd number of consecutive spaces
$parts=explode(' ', $keywords);
foreach ($parts as $x=>$word) {
$parts[$x]="'" . mysql_real_escape_string($word, $dbh) . "'";
}
$keywords=implode(',', $parts);
return " SELECT p.page_url AS url,
COUNT(*) AS occurrences
FROM page p, word w, occurrence o
WHERE p.page_id = o.page_id AND
w.word_id = o.word_id AND
w.word_word in ($keywords)
GROUP BY p.page_id
ORDER BY COUNT(DISTINCT w.word_id)*COUNT(*) DESC";

}

关于php - 多词搜索引擎查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13546464/

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