我正在构建一个搜索引擎的东西。
我的查询分解了一个查询字符串,然后SELECT
为字符串中的每个单词拆分了与该单词关联的所有参考 ID。
我有一种方法可以为每个查询词的每个 id 提供相关性分数。但是,如果我的查询多次返回 id,我正在寻找一种跟踪方法。谁能指出我正确的方向。我正在使用 PHP 和 mySQL?
我正在构建一个搜索引擎的东西。
我的查询分解了一个查询字符串,然后SELECT
为字符串中的每个单词拆分了与该单词关联的所有参考 ID。
我有一种方法可以为每个查询词的每个 id 提供相关性分数。但是,如果我的查询多次返回 id,我正在寻找一种跟踪方法。谁能指出我正确的方向。我正在使用 PHP 和 mySQL?
好吧,您可以使用 PHP 或 SQL 来实现:
一个代码示例(没有错误检查,假设您直接使用 mysql api - 您不应该这样做):
<?php
$sql = 'SELECT ...';
$result = mysql_query($sql);
$ids = array();
while ($row = mysql_fetch_object($result)) {
$id = $row->id;
if (array_key_exists($id, $ids)) {
print 'id '. $id . ' exists';
continue;
}
$ids[$id] = true;
}
?>
使用 SQL,您可以尝试 HAVING 语句,如下所示:
SELECT * FROM whatevs HAVING COUNT(id) > 1
由于我不知道您的表格布局,因此很难编写实际工作的代码/SQL。