PHPからsolrのmultiValuedなFieldに値を追加する方法です。
solr schema.xmlの設定の一部はこんな感じ。
schema.xml
...
<field name="multi_no" type="int" indexed="true" multiValued="true"/>
...
当初は↓のように、
$multiNos = array();
$multiModels = $this->getMultiModel($id);
foreach ($multiModels as $multiModel) {
$multiNos[] = $multiModel->multi_no;
}
$doc = new SolrInputDocument();
$doc->addField('multi_no', $multiNos);
単にarrayを突っ込めばいけるのかと思ってました。
しかしそれではダメで、
$multiNos = array();
$multiModels = $this->getMultiModel($id);
foreach ($multiModels as $multiModel) {
$multiNos[] = $multiModel->multi_no;
}
$doc = new SolrInputDocument();
foreach ($multiNos as $multiNo) {
$doc->addField('multi_no', $multiNo);
}
↑のようにforeachで回すんですね。
知らんかった。