2017-10-17 10 views
0

私は自分のアプリケーションの1つにAlgolia検索を組み込み、10 KBのドキュメントサイズの上限に達しています。私は、モデル全体ではなく、モデル内の特定のフィールドのインデックスを作成するだけです。私はmongoを使用していますが、それは私が気にしない埋め込まれた関連文書を持っています。Algolia検索を使用して、私のモデルの関連するフィールドのみをインデックスする方法は?

私はで指示に従った:ときに私は、インデックスデータを今すぐhttps://laravel.com/docs/5.3/scout

、私は約100の私の2000年かそこらの文書のうちは、10キロバイトのサイズを超えているという警告を取得します。

Algoliaに、特定のフィールドにインデックスを付け、関係や埋め込みドキュメントのような他のデータを無視するように指示するにはどうすればよいですか?

答えて

2

検索可能な特性を追加しているクラスで、LaravelのtoSearchableArrayを使用することができます。そこには、実際に検索したい部分だけが含まれています。

public function toSearchableArray() { 
    $array = $this->toArray(); 
    $array = [ 
    'id' => $this->id, 
    'name' => $this->name, 
    'description' => $this->description, 
    'price' => (int)$this->price, 
    'likes' => (int)$this->likes, 
    'slug' => $this->slug 
    ]; 
    return $array; 
} 

は、あなたが探しているものということですか?

+2

最後に配列を返す必要があることに注意してください –

関連する問題