問題タブ [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.
sphinx - Sphinxからすべてのレコードを取得するにはどうすればよいですか?
Sphinxを使用してインデックスからすべてのレコードを取得するにはどうすればよいですか?SELECT * FROMインデックスのように?特定のキーワード/usr/ local / sphinx / bin / searchキーワードに一致するすべてのレコードを取得するために、次のようなことができることはわかっていますが、私がやりたいのは、インデックスからすべてのレコードを取得することです。
ruby-on-rails - Sphinxデーモンが実行されていることを確認するにはどうすればよいですか?
CentOS 5.3、Apache、Phusion Passenger()を使用して本番サーバーのセットアップに取り組んでいますmod_rails
。Sphinx検索エンジンとThinkingSphinxgemを使用するアプリがあります。
ThinkingSphinxのドキュメントによると...
インデックス付けされたデータを実際に検索する場合は、Sphinxのsearchdデーモンを実行する必要があります。これは、次のタスクを使用して制御できます。
これが本番環境で確実に行われるようにするための最良の方法は何でしょうか?アプリをデプロイしてから手動で実行することもできrake thinking_sphinx:start
ますが、サーバーをバウンスする必要がある場合にすべてが復旧するように設定するのが好きです。
イニシャライザでそのRakeタスクを呼び出す必要がありますか?または何かrc.local
?
mysql - Sphinx 検索エンジンの頭字語
「mia」などの頭字語をインデックスに登録するにはどうすればよいですか? 「mia」を検索すると、「mia」ではなく「mia」の結果が得られます。「mia」を検索しても、まったく何も得られません。
編集:
ソリューションはおおよそ次のようになります。ignore_chars = -, .
ruby-on-rails - Sphinx デルタ インデックス作成 -- メイン インデックスを再構築する必要がありますか?
私は Sphinx 検索エンジンと Thinking Sphinx gem について読んでいます。TSドキュメントでは...
他の多くの検索サービスと比較すると、Sphinx には 1 つの大きな制限があります。インデックス内の単一のドキュメントのフィールドを更新することはできず、そのインデックスのすべてのデータを再処理する必要があります。
私の理解が正しければ、ユーザーが何かを追加または編集しても、その変更はインデックスに反映されません。そのため、レコードを追加しても、インデックス全体が再構築されるまで検索に表示されません。または、レコードを削除すると、検索結果に表示され、何らかのエラーや苛立たしい動作が発生します。
さらに、インデックスを再構築している間、Sphinx はシャットダウンされます。そのため、アプリの検索機能は定期的に (1 時間に 1 回、数時間に 1 回) オフラインになり、検索を行おうとすると、エラーまたは「後で試してください」というメッセージが表示されます。
OK、明らかに、実際のアプリでは受け入れられません。したがって、ほとんどの場合、デルタ インデックスを使用する必要があります。
しかし、定期的に検索エンジンをシャットダウンし、完全なインデックス作成を行う必要があるようです...
デルタ インデックス作成をオンにしても、完全な再インデックスを定期的に実行する必要がなくなるわけではありません。そうしないと、デルタ インデックス自体がコア インデックスと同じくらい大きくなり、分離しておく利点がなくなります。また、モデル レコードを変更するサーバーへのリクエストも遅くなります。
ここでドキュメントが何を言っているのかよくわかりません。多分誰かが私を助けることができます。デルタ インデックス作成の要点は、インデックスを定期的に再構築する必要がないことだと思いました。データが変更されるたびに即座に更新されます。
インデックスを 1 時間ごとまたは何かごとに再構築すると、完全にめちゃくちゃになるからですよね?
ruby-on-rails - レールでスフィンクスを使用し、列の値に基づいて結果を除外する方法
アクティブなユーザーを表示する簡単なクエリがありますが、どういうわけか非アクティブなユーザーが表示されます。スフィンクスを使用しています。クエリは次のようになります。
条件ハッシュは次のようになります。
条件には:is_expired => false が含まれますが、:is_expired = true を持つユーザーをフェッチします。
有効期限が切れていないレコードのみを取得するにはどうすればよいですか?
php - Sphinxはランダムにサブクエリを組み合わせることができません
私はこのsphinx検索エンジンを持っており、sphinxapi.phpを使用してZendで使用しています。それは素晴らしい働きをします。本当に本当に素晴らしい。
ただし、1つの問題があります。それはランダムに失敗します。
ここに見られるように、私は言語と任意の量のタグを検索し、最終的に単一のクエリ文字列に組み込まれます(サブクエリのバトルロードを作成する代わりに)。
したがって、通常、これは魅力のように機能しますが、時折、スフィンクスは英語で2000エントリ、たとえば「pictures」(またはその他の純粋な英語の単語)というタグが付いた1000エントリを検出したが、両方の結果に一致するヒットがゼロであると返します。純粋に誤りです。実際、ページを更新すると、すべてが通常の状態に戻り、800の実際の結果が得られます。
私の質問は、なぜそれがこれを行うのか、そしてどうすればそれを停止させるのかということです。
何か案は?
:編集:短縮された出力ログを追加
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)で発生するのを防ぐ方法はありますか?
search - ファジー データでデータベースを相互参照する
私は現在、大量のユーザー生成名を正規形式の同じ名前の別のリストと照合する必要があるプロジェクトに取り組んでいます。問題は、ユーザーが生成した名前に多数のスペルミス、略語、および単に無効なデータが含まれているため、正規データとの相互参照が困難になることです。これを行う方法に関する提案はありますか?
これはリアルタイムで行う必要はありません。この場合、速度よりも正確さが重要になります。
これに関する現在のアイデアは次のとおりです。
- Lucene や Sphinx などの既存の検索実装を使用して、標準データベースでユーザーが入力した名前のあいまい検索を実行します。これには、レーベンシュタイン距離のようなものを使用すると思われます。
- 実際の名前を使用する代わりに、SOUNDEX ハッシュ (スペルではなく名前の音で計算されると思われる) の相互参照。
- 上記のいくつかの組み合わせ
これらのいずれかまたは独自のアイデアについてフィードバックがある人はいますか?
私の懸念の 1 つは、上記の方法のいずれも省略形をうまく処理できないということです。拡張された略語を実際に検索するためのいくつかの機械学習方法の方向性を誰かに教えてもらえますか (または、私がおかしいと言ってください)? 前もって感謝します。
django - スフィンクス検索を使用してすべてのモデルの結合結果を取得する方法
最近、私のウェブサイトに django-sphinx 検索を実装しました。それぞれのセパレートモデルで問題なく動作しています。しかし今、私のクライアントの要件は変わりました。彼は、一致するクエリから最初に「タイトル」として結果を表示し、次に説明を表示したいと考えています。しかし、スフィンクスは各モデルに固有の結果を提供すると思いますが、すべてのモデルを組み合わせた結果は提供しません。
したがって、一致するクエリから「タイトル」を最初に表示し、次に説明を表示し、すぐにすべてのモデルの結果から「タイトル」を表示する方法を教えてください。