文档说明

更新、修改文档

Xunsearch PHP-SDK 中,更新、修改文档和添加文档的做法非常的类似, 只不过调用的是 XSIndex::update,并且在内部处理上有所区别。

如果索引数据库中已存在主键值相同的文档,那么相当于先删除原有的文档,再用当前文档替换它。 如果未存在主键值相同的文档,则效果和添加文档完全一致。

Info: 有人可能会想,既然如此为什么还要有 XSIndex::add 呢,因为添加文档少了一个判断 过程,具有更高一些的效率。因此,如果您在使用 API 时能明确知道当前文档是新增的,那么 还是建议使用 add 这个 API

示范代码如下:

$data = array(
    'pid' => 234, // 此字段为主键,是进行文档替换的唯一标识
    'subject' => '测试文档的标题',
    'message' => '测试文档的内容部分',
    'chrono' => time()
);
 
// 创建文档对象
$doc = new XSDocument;
$doc->setFields($data);
 
// 更新到索引数据库中
$index->update($doc);
$Id$

4条评论!

#115 报告
xieweiaaa at 2017-09-18 15:12:31
替换的时候

替换的时候,如果有些字段没有赋值,那么这个字段是否是之前的值?或者直接替换成空?

--------测试了,是直接赋空---------

#95 报告
joinusba at 2016-12-09 10:43:49
update问题

update没有按照上面的意思执行,而是追加文档。主键的唯一性形同虚设.update几次就出来几条记录。

#79 报告
Tough at 2016-07-29 17:46:14
update问题

update没有按照上面的意思执行,咩有删除后再替换,而是直接追加文档。主键的唯一性好像形同虚设啊。

#55 报告
wcj343169893 at 2015-06-19 18:38:45
更新之后的问题

用上面的操作更新了,并且 xunsearch/util/Quest.php searchuser 卢松松 用这个方式可以返回内容,但是用Search->search()方法无法搜索到

请到论坛 登录 后刷新本页面!