問題タブ [thinking-sphinx]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
ruby-on-rails - スフィンクスを考えると、関連付けが機能していません
私はモデルを持っています:
私が実行すると:
私は得る:
そして、私の「config/development.sphinx.conf」には次のような奇妙な点があります:
なんらかの理由でアソシエーションが機能していないように見えますが、どこが間違っていて、どうすれば修正できますか?
(Rails 2.3.4 と最新の Thinking Sphinx 1.2.11 を実行)
ruby-on-rails - gem を使用するときにカピストラーノ思考のスフィンクス タスクを含めるにはどうすればよいですか
私はスフィンクスを考えるために宝石を使用しています:
そう:
ウェブサイトで規定されているものは機能しません。
gem を使用するときに、カピストラーノ思考のスフィンクス タスクを deploy.rb ファイルに含めるにはどうすればよいですか?
編集
追加:require 'thinking_sphinx/deploy/capistrano'
私に与えます:
ruby-on-rails - 製品検索のカテゴリ ドロップダウン
メンバーシップを使用して has_many に関連付けられている多くのカテゴリを持つ多くの製品があります。
カテゴリのドロップダウンで検索をフィルタリングしながら、誰でも製品を検索できる検索ボックスを作成しようとしています (したがって、関連するカテゴリの製品のみを取得できます)。
think_sphinx インデックスは Product モデルにあります。エラーは発生しませんが、ドロップダウンは検索に影響しません。
ruby-on-rails - 同じ結合テーブルからさまざまな条件をどのように検索しますか?
これらの関連付けでは、拡大結果のみが正しい結果を返しますが、2番目の関連付けを検索しようとすると、0の結果が返されます。
使用したサンプルコード
しかし、define_indexの順序を逆にすると、逆のことが起こります。したがって、対物レンズの直径の結果は正しい結果を返し、倍率の結果は0を返します。
Rails v2.2、Thinking-Sphinxをプラグインv1.2.12およびSphinx0.9.8として使用
編集:生成されたsql_query値を見ると、2番目の属性の結合が間違った関連付けを使用しているため、期待される結果が返されません。
簡略化された結果:
ruby-on-rails - rails - 思考のスフィンクスの結果に複雑な可視性設定を適用する
私が開発している製品には、メッセージモデルがあります。
メッセージは、グループに制限することも、制限しない (全員が利用可能) こともできます。
ユーザーがメッセージのグループのいずれかに属している場合、またはメッセージが制限されていない場合、ユーザーはメッセージを見ることができます。
ここに表示されるメッセージを選択するクエリがあります(私が何を意味するかを明確にすることができることを願っています)
(2,3,4,5,6,1) はユーザーが属するグループで、ユーザーごとに異なります
ここにサブクエリを使用した類推クエリがあります。必要なものを明確にするのに役立つことを願っています
この可視性設定を思考スフィンクスの結果に適用することは何とか可能ですか? この OR と IN を適用する意味
?
それが不可能な場合は、別の質問になります。検索で見つかったすべてのオブジェクトの ID を取得することは何とか可能ですか?
AND を WHERE 条件に追加するだけで、自分でクエリを実行できるようになります
LEFT JOIN を使用しないクエリと WHERE に AND を追加するクエリの両方が、mysql のリソースを少し消費すると思いますが、他の解決策が不可能な場合は、これで十分です。
ありがとう、
パベル・K
ruby-on-rails - Sphinxデルタインデックスの作成が本番環境で失敗すると考える
これが私が決定したものです:
- デルタインデックスは開発でうまく機能します
- 本番サーバーにプッシュするとデルタインデックスが機能せず、searchd.logにアクションが記録されません
- 私はPhusionPassengerを実行しており、基本的なトラブルシューティングガイドで推奨されているように、次のことを確認しています。
- www-dataには、インデックスレーキタスクを実行する権限があります(コマンドラインから手動で実行します)。
- インデクサと検索へのパスが正しい(/ usr / local / bin)
- Production.logにエラーはありません
いったい何が欠けているのでしょうか?Ruby Enterprise 1.8.6、Rails 2.3.4、Sphinx 0.9.8.1、ThinkingSphinx1.2.11を実行しています。
ありがとう!
ruby-on-rails - スフィンクスは古い結果を返しています
環境:
Memcached、Rails 2.2.2 + cache_money、Sphinx+思考スフィンクス
次の結果は古い結果になります。-
レコードを追加します。mysqlには正しいデータが含まれています
-レコードはおそらくこの時点でメモリにキャッシュされてい
ます-re -indexsphinx
-sphinxは正しいデータで適切な結果を返します
-レコードを編集します-
キャッシュは適切に無効化され、mysqlには正しい更新されたデータが含まれます
-スフィンクスのインデックスを再度作成します
-スフィンクスは古くなっています
sphinxのインデックスの再作成、memcachedのクリア、疑わしいレコードの編集はすべて効果がありません。キャッシュレイヤーをまとめて無効にする(cache_moneyとmemcached)も効果がありません。
ruby-on-rails - Sphinxデーモンが実行されていることを確認するにはどうすればよいですか?
CentOS 5.3、Apache、Phusion Passenger()を使用して本番サーバーのセットアップに取り組んでいますmod_rails
。Sphinx検索エンジンとThinkingSphinxgemを使用するアプリがあります。
ThinkingSphinxのドキュメントによると...
インデックス付けされたデータを実際に検索する場合は、Sphinxのsearchdデーモンを実行する必要があります。これは、次のタスクを使用して制御できます。
これが本番環境で確実に行われるようにするための最良の方法は何でしょうか?アプリをデプロイしてから手動で実行することもできrake thinking_sphinx:start
ますが、サーバーをバウンスする必要がある場合にすべてが復旧するように設定するのが好きです。
イニシャライザでそのRakeタスクを呼び出す必要がありますか?または何かrc.local
?
ruby-on-rails - Sphinx デルタ インデックス作成 -- メイン インデックスを再構築する必要がありますか?
私は Sphinx 検索エンジンと Thinking Sphinx gem について読んでいます。TSドキュメントでは...
他の多くの検索サービスと比較すると、Sphinx には 1 つの大きな制限があります。インデックス内の単一のドキュメントのフィールドを更新することはできず、そのインデックスのすべてのデータを再処理する必要があります。
私の理解が正しければ、ユーザーが何かを追加または編集しても、その変更はインデックスに反映されません。そのため、レコードを追加しても、インデックス全体が再構築されるまで検索に表示されません。または、レコードを削除すると、検索結果に表示され、何らかのエラーや苛立たしい動作が発生します。
さらに、インデックスを再構築している間、Sphinx はシャットダウンされます。そのため、アプリの検索機能は定期的に (1 時間に 1 回、数時間に 1 回) オフラインになり、検索を行おうとすると、エラーまたは「後で試してください」というメッセージが表示されます。
OK、明らかに、実際のアプリでは受け入れられません。したがって、ほとんどの場合、デルタ インデックスを使用する必要があります。
しかし、定期的に検索エンジンをシャットダウンし、完全なインデックス作成を行う必要があるようです...
デルタ インデックス作成をオンにしても、完全な再インデックスを定期的に実行する必要がなくなるわけではありません。そうしないと、デルタ インデックス自体がコア インデックスと同じくらい大きくなり、分離しておく利点がなくなります。また、モデル レコードを変更するサーバーへのリクエストも遅くなります。
ここでドキュメントが何を言っているのかよくわかりません。多分誰かが私を助けることができます。デルタ インデックス作成の要点は、インデックスを定期的に再構築する必要がないことだと思いました。データが変更されるたびに即座に更新されます。
インデックスを 1 時間ごとまたは何かごとに再構築すると、完全にめちゃくちゃになるからですよね?
ruby-on-rails - ThinkingSphinx-モデルが更新または作成されるたびにロートインデックスを作成する方法を教えてください。
Railsアプリでモデルを作成または更新するたびに、Sphinxから次の出力が発生します。
Sphinx 0.9.8.1-リリース(r1533)Copyright(c)2001-2008、Andrew Aksyonoff
構成ファイルを使用'/Users/jason/development/projects/active/project/config/development.sphinx.conf'...インデックスインデックス'ad_delta'...収集された17のドキュメント、0.0MB収集された0attr値ソートされた0.0Mvalues、 100.0%完了ソート済み0.0 Mhits、100.0%完了合計17ドキュメント、944バイト合計3.827秒、246.69バイト/秒、4.44ドキュメント/秒ローテーションインデックス:SIGHUPを検索に正常に送信しました(pid = 10655)。
これは大きなパフォーマンスヒットを引き起こしています。
これがスフィンクス(thinking_sphinx)で発生するのを防ぐ方法はありますか?