如何只使用PHP 搜索唯一的单词,以便我可以学习搜索的基础知识?
我在为问题制作多维数组时遇到了一些问题。
我的第一个unsuccessful attempt如下。
$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。
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 );
答案 0 :(得分:3)
帮自己一个忙,看看Zend_Search_Lucene。
答案 1 :(得分:2)
请注意str_replace
可以接受一组值作为指针。例如,
$body = str_replace(array(',', '.'), '', $body);
用空字符串替换数组中元素的任何实例。
或者,我建议查看一些预先构建的搜索和索引库。这是一个非常的硬盘区域,您可以从头开始使用已经完善的索引和搜索算法获得可靠的结果。
答案 2 :(得分:2)
首先使用DOM解析器从页面中提取所有文本(非标记)内容是个好主意。见:
答案 3 :(得分:0)
我最终决定使用LIKE
之类的Postgres命令进行搜索。
我在DB上进行数据操作要比在PHP上更容易。