私は初めての Rails アプリを作成していますが、Thinking Sphinx で問題なく動作しています。私はそれのほとんどを理解していますが、誰かがいくつかの概念的な質問を明確にするのを手伝ってくれるなら、それが大好きです
sphinx クエリの後に検索結果を表示する場合、sphinx クエリから返される sphinx_attributes を使用する必要がありますか? または、@property.title、@property.amenities.title などの通常の Rails オブジェクトを使用する必要がありますか? 通常の Rails オブジェクトを使用すると、余分なクエリを実行することになりますか?
フォーラムで、「未読の投稿」を表示したいと考えています。明らかに、これはユーザーとトピックの組み合わせごとに true/false であるため、トピックのスフィンクス インデックス内に「リーダー」ID をキャッシュする必要があると考えています。このようにして、特定の user_id のすべての未読の投稿に対してクエリをすばやく実行できます。私はこれを機能させましたが、スフィンクスインデックス間に時間遅延があるため、無意味であることに気付きました。そのため、ユーザーが未読の投稿をクリックすると、sphinx DB のインデックスが再作成されるまで未読のまま表示されます。
私はまだ開発中なので、手動でインデックス作成/再構築を行っていますが、本番環境では、再インデックス作成の標準的な時間はどれくらいですか?
いくつかのテキスト フィールドを持つモデルがあります。キーワード検索のために、これらすべてを sphinx インデックスの 1 つの列に連結する必要がありますか? 確かに、これはすべての個別のフィールドにインデックスを付けるよりも高速です。
トピックとは少しずれますが、疑問に思っています - @property.agents.name などのネストされたモデルにアクセスすると、パフォーマンスに影響しますか? または、プロパティがデータベースからプルされると、レールは関連するすべてのエントリを自動的に取得しますか?