0

sunspot sunspot.github.comの例では、belongs_to :blog関連付けはsearchableブロック内でinteger :blog_id。後で、を使用して検索を特定のブログに制限できますwith(:blog_id, 1)

これを行った場合、関連付けがaに対するものでretailerあり、インデックスがオンになっている場合を除きretailer_idます。しかし、検索すると、を使用してもすぐに結果が返されませんwith(:retailer_id, 4)。この条件を省略した場合、返されるすべての結果に。が含まれretailer_id = 4ます。

何度もインデックスを再作成しました。sunspot_rails1.3.3と2.0.0の両方を試しました。

他のすべてのtextフィールドは正常にインデックス付けされているように見えます。

Railsログに表示されるsolrへのクエリには、適切なフィールドが含まれているようです。

他に何がこれを引き起こす可能性がありますか?

4

1 に答える 1

0

Sunspot.index(Item.first)XMLにretailer_idが含まれていることを試みて確認した後。rake タスクによって行われたインポートのログを確認しました。

DataMapper.finalize結局のところ、私が経験していた問題は、DataMapper が afterが呼び出されるまで関連付けプロパティを作成しないためです。これは、再インデックスのために含まれている sunspot_rails tasks.rb の一部として発生することはありません。

私にとっての簡単な解決策は、単純に rake タスクをコピーし、すべてのモデルが必要になった後に finalize の呼び出しを追加することでした。

于 2013-03-05T05:57:02.580 に答える