我想以这种方式配置Drupal的Search API,这样就可以索引(并搜索)一个段落引用的实体类型(人),而该段落则被另一个实体类型(文章)所引用。
大约。我有的。文章和人物是内容类型。编辑文章让您选择一个具有特定角色的人,该人另存为段落。到目前为止一切都很好!
+-----------+
| Paragraph |
+-----------+
+------> ID: 1 | +---------+
+---------+ | | P_ID: 200 <-----+ | Person |
| Article | | | ... | | +---------+
+---------+ | +-----------+ +-----+ ID: 200 |
| ID:100 | | | ... |
| P_ID: 1 +-------+ +---------+
| ... |
+---------+
+--------+------------------+
| Person | Title of Article |
+---------------------------+
| John | T1, T3, T6 |
| Alice | T2 |
| Bob | T4, T5 |
+--------+------------------+
我想拥有一个Search-API搜索索引,其中包含人名和链接的文章(以逗号分隔)。 (有些人没有文章。)
使用Drupal的Search API可以做到吗?如果是的话,怎么办?我应从哪种内容类型开始?我需要使用反向引用字段吗?
答案 0 :(得分:0)
搜索API 模块允许其他模块(根据您的情况选择一个)提供可通过实现处理器插件建立索引的其他属性 >。然后,这些属性将像搜索索引的“添加字段”表单上的“常规”属性一样列出。
此类处理器的最简单示例是“ URL字段”处理器,该处理器添加了“ URI”字段(可以在“常规”数据源部分中找到)。您可以查看该处理器的code here的最新版本。
我不会在这里解释整个编码解决方案(很长)。为此,有关Drupal 8 Search API的文档非常出色:Create custom fields using a custom processor
这是另一个有用的link: Make adding new properties/fields more a first-class operation of processors
这里是您需要的快速总结:
在此模块上创建一个新的search_api的Processos插件
示例位于my_module/src/Plugin/search_api/processor/AddPersonName.php
<?php
namespace Drupal\my_module\Plugin\search_api\processor;
/**
* Custom Search API processos.
*
* @SearchApiProcessor(
* ...
* ...
* ...
* )
*/
class AddPersonName extends ProcessorPluginBase {
// ...
}
在AddPersonName::getPropertyDefinitions()
AddPersonName::addFieldValues()
上计算属性值希望本教程对您有所帮助。