2

エラーsort-by attribute 'published_at' not foundが発生しますが、再構築後でもテスト環境でのみです。

モデルでは:

belongs_to :content, polymorphic: true
belongs_to :user

define_index do
  indexes user.name, as: :name
  has role
  has user_id
  has content_id
  has content.published_at, as: :published_at, type: :datetime
  has content.status, as: :status, type: :integer
end

開発中に実行rake ts:rebuildすると、インデックスが適切に構築されます。

# development.sphinx.conf
{
  [...]
  sql_attr_uint = sphinx_internal_id
  sql_attr_uint = sphinx_deleted
  sql_attr_uint = class_crc
  sql_attr_uint = role
  sql_attr_uint = user_id
  sql_attr_uint = content_id
  sql_attr_uint = status
  sql_attr_timestamp = published_at
  sql_attr_string = sphinx_internal_class
  [...]
}

ただし、RAILS_ENV=test rake ts:configまたはテスト環境で実行すると、次のように生成されますts:rebuild

# test.sphinx.conf
{
  [...]
  sql_attr_uint = sphinx_internal_id
  sql_attr_uint = sphinx_deleted
  sql_attr_uint = class_crc
  sql_attr_uint = role
  sql_attr_uint = user_id
  sql_attr_uint = content_id
  sql_attr_string = sphinx_internal_class
  [...]
}

もちろん、これはテスト環境でエラーにつながります。

ThinkingSphinx::SphinxError:
  index content_byline_core: sort-by attribute 'published_at' not found

statusおよびpublished_at属性が欠落していることに注意してください。これは過去数か月間機能していましたが、何が原因で壊れたのかわかりません.

  • スフィンクス 2.0.2-ベータ版
  • 考えるスフィンクス 2.0.12
  • レール 3.2.6
  • ルビー1.9.3
4

1 に答える 1

0

Zeusの使用中に同様の問題があります。rake 仕様は動作しますが、zeus を使用すると同様のメッセージが表示されます。私にとってゼウスを削除することは役に立ちますが、それは部分的な解決策にすぎません...

于 2014-02-21T09:43:57.760 に答える