删除文档
当某一条数据(文档)已经过期或失效,则必须将它从索引数据库中移除,才能从搜索结果中消失。在 Xunsearch PHP-SDK
中删除文档有下面两种方式。1. 按主键删除主键是指项目中类型为 id
的字段,删除是调用的是 XSIndex::del 方法,传入参数必须是要删除的文档的主键值
,或一系列主键值组成的数组
。
- $index->del('123'); // 删除主键值为 123 的记录
- $index->del(array('123', '789', '456')); // 同时删除主键值为 123, 789, 456 的记录
2. 按特定字段上的索引词删除在项目中,除了主键之外我们通常也会对其它字段进行索引。如果该字段的索引方式(即配置文件中 index
选项的值)为 self
或 both
,那么也可以根据该字段上的索引词进行删除。
特别注意是根据索引词删除而不是该字段的值,索引词是指该字段值经过分词器处理后得到的词汇。对于索引方式为 mixed
的,如需删除,请把字段名设为类型为 body
的字段的名称。
- $index->del('abc', 'subject'); // 删除字段 subject 上带有索引词 abc 的所有记录
- $index->del(array('abc', 'def'), 'subject'); // 删除字段 subject 上带有索引词 abc 或 def 的所有记录
Note: 如果您删除时指定的主键或字段索引词包含中文字符,则它的编码必须与整个项目的 默认字符集 XS::defaultCharset 一致。
此外删除操作和添加文档一样,也是一个异步行为。