当您的索引数据库发生了重大改变时必须清空索引。比如搜索项目的字段配置修改了, 或者是数据进行了大模迁移、导入或批量删除导致真实数据库和搜索数据库发生了较大的偏差。 > tip: 在我们附带的[Indexer 索引管理工...
...可以使用 [XSSearch::addDb] 进行多库并行搜索。 ~~~ [php] // 比如把当前索引更新到名称为 db2 的库中 $index->setDb('db2'); // 在检索时同时搜索 db, db2 的作法,具体参考搜索的有关章节 ... $search->addDb('db2')->setQuery(...)->search(); ~~~ 索引更...
...始终为 UTF-8 。 如果您需要编写带有参数支持的分词器,比如让用户传入按什么字符分割,请参照下面写法编写构造函数: ~~~ [php] class XSTokenizerXyz implements XSTokenizer { private $delim = '-'; // 默认按 - 分割 public function __construct...
...[XSDocument::beforeSubmit] 和 [XSDocument::afterSubmit] 方法来实现,比如扩展代码为 `$prefix/sdk/php/lib/MyDocument.class.php`。 ~~~ [php] class MyDocument extends XSDocument { public function beforeSubmit(XSIndex $index) { // 在此编写您的代码,如需要中...
...于不经过 `setQuery` 因此有些其它辅助的功能受到 限制,比如不能进行结果高亮、不能通过 `addWeight`、`addRange` 增加辅助搜索条件。 ~~~ [php] $count = $search->count('项目测试'); $docs = $search->search('项目测试'); ~~~ 搜索中的串接操作 ---...
...以自制一个词典,并将黑词统一设置为一个独特的属性,比如 "@", 那么就可以用该功能判断一段文本是否包含黑词。 ~~~ [php] $text = '...'; if ($tokenizer->hasWord($text, '@')) { // 包含词性为 '@' 的词 } else { // 为包含词性为 '@' 的词...
...子内容 - `dateline` 发表时间,要用到 其它的有些字段,比如 `invisible`, `anonymous` 表面看上去跟搜索结果也是有关系的,但 实际上这些可以在索引入库时进行处理和排除,完全没有必要放到搜索数据中去,所以不列入。 字段设计...
...引库。 编写好的过滤器必须单独以类名为文件名保存,比如您的过滤器对象名称为 XSXyzFilter,那么 请将代码命名为 XSXyzFilter.php 保存,在索引工具中使用参数 `--filter=/paht/to/XSXyzFilter` 来指定这个过滤器。 典型过滤器写法如下...