- 新手上路
- 了解基础对象
- 编写项目配置文件
- 管理索引
- 使用搜索
- 使用辅助工具
- 专题
更新、修改文档
在 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条评论!
替换的时候,如果有些字段没有赋值,那么这个字段是否是之前的值?或者直接替换成空?
--------测试了,是直接赋空---------
update没有按照上面的意思执行,而是追加文档。主键的唯一性形同虚设.update几次就出来几条记录。
update没有按照上面的意思执行,咩有删除后再替换,而是直接追加文档。主键的唯一性好像形同虚设啊。
用上面的操作更新了,并且 xunsearch/util/Quest.php searchuser 卢松松 用这个方式可以返回内容,但是用Search->search()方法无法搜索到
请到论坛 登录 后刷新本页面!