3

你怎么能用 PHP 只搜索唯一的词,这样我就可以学习进行搜索的基础知识?

我在为问题制作多维数组时遇到了一些问题。

我的第一次不成功的尝试如下。

#1

$result = pg_query_params ( $dbconn, 
    "SELECT question_id, body
    FROM questions",
    array () 
);

while ( $row = pg_fetch_array ( $result ) ) {
    $question_body [ $row['question_id'] ] ['body'] = $row['body'];
    $question_index = explode ( " ", $question_body[ $row['question_id'] ] ['body'] ); 
    $question_index = array_unique ( $question_index ); 
}                                                                                                   
var_dump( $question_index ); 

这段代码的问题在于它结合了每个问题中的单词。似乎我不能使用explode,因为它似乎只制作一个一维数组。

我还运行以下代码尝试获取 question_id unsuccessfully

#2

while ( $row = pg_fetch_array ( $result ) ) {
    $question_body [ $row['question_id'] ] ['body'] = $row['body'];
    $question_index[ $row['question_id'] ] = explode ( " ", $question_body[ $row['question_id'] ] ['body'] );
    $question_index[ $row['question_id'] ]= array_unique ( $question_index );
}
var_dump( $question_index );
4

4 回答 4

3

帮自己一个忙,看看Zend_Search_Lucene

于 2009-08-22T04:51:27.397 回答
2

请注意,str_replace可以接受一个值数组作为指针。例如,

$body = str_replace(array(',', '.'), '', $body);

用空字符串替换数组中元素的任何实例。

或者,我建议查看一些预先构建的搜索和索引库。这是一个很难从头开始的领域,而且您更有可能使用已经完善的索引和搜索算法获得可靠的结果。

于 2009-08-22T04:48:57.247 回答
2

最好先使用 DOM 解析器从页面中提取所有文本(非标记)内容。看到这个:

如何在 PHP 中实现前向索引?

于 2009-08-22T04:50:12.097 回答
0

我最终决定使用 Postgres 命令,例如LIKE搜索。对我来说,在 DB 上进行数据操作比在 PHP 上要容易得多。

于 2009-08-25T01:37:07.380 回答