我希望在具有模型关系的项目上使用弹性搜索。
现在弹性搜索正在工作,我遵循了这个文档,他解释了如何从这个包开始:
Elasticsearch/elasticsearch
Babenkoivan/Elastic-migrations
Babenkoivan/弹性适配器
Babenkoivan/elastic-scout-driver
问题是我需要能够按关系搜索。
这是我的复合弹性迁移:
Index::create('composant', function(Mapping $mapping, Settings $settings){
$mapping->text('reference');
$mapping->keyword('designation');
$mapping->join('categorie');
$settings->analysis([
'analyzer' => [
'reference' => [
'type' => 'custom',
'tokenizer' => 'whitespace'
],
'designation' => [
'type' => 'custom',
'tokenizer' => 'whitespace'
]
]
]);
});
这是我的分类弹性迁移:
Index::create('categorie', function(Mapping $mapping, Settings $settings){
$mapping->keyword('nom');
$settings->analysis([
'analyzer' => [
'nom' => [
'type' => 'custom',
'tokenizer' => 'whitespace'
]
]
]);
});
我的作曲家模型:
public function categorie()
{
return $this->belongsTo('App\Model\Categorie');
}
public function toSearchableArray()
{
return [
'reference' => $this->reference,
'designation' => $this->designation,
'categorie' => $this->categorie(),
];
}
和我的分类模型:
public function toSearchableArray()
{
return [
'nom' => $this->nom,
];
}
因此,如果您查看组合器关系,您可以看到联接映射返回分类关系。我现在不知道我做得对,但我知道的是 elasticsearch 在我正在寻找的对象中没有任何关系。
而且我没有找到任何有关如何使用包的连接映射方法的文档。
湖上湖
Cats萌萌
DIEA