問題タブ [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.
php - 私の場合、Sphinx (または他のサードパーティ) 検索エンジンは機能しますか? それとも独自に作成する必要がありますか?
Web サイトで広告の検索機能を作成しています。ここに私が満たす必要がある基準のいくつかがあります:
「bmw 520」を検索すると、これら 2 つの単語がこの順序で一致する場合にのみ一致が返されます。「bmw」または「520」のみに一致しません。
'bmw 330ci' を検索すると、上記のような結果が返されますが、ci 拡張子の有無は異なります。ご存知のように、車には多数の拡張子があります (i、ci、si、fi など)。
「マイナス記号」を使用して、記号の後の単語を含むすべてのリターンを「除外」したいと思います。たとえば、「bmw -330」は、「330」を除くすべての「bmw」結果を返します。(マイナス記号の代わりに NOT も使用できます)
'é' のようなすべての特殊文字のアクセントは、単純な値 (この場合は 'e') に変換されます。
検索文字列で完全に無視する単語のリスト。
Sphinx が必要ですか、それともこれを php ファイルに記述する必要がありますか?
あなたは私に何を提案しますか?
ありがとう
sphinx - Sphinx の MVA 属性
Sphinx で MVA (複数値) 属性を作成するために期待されるデータ形式を理解できる人はいますか?
GROUP_CONCAT
と照合されたコンマ区切りの整数の行を blob として返す MySQL 関数があります
。さらに 2 つの MVA 属性があり、JOIN ステートメントの結果をGROUP_CONCAT
BLOB として照合します (ThinkingSphinx によって生成されます)。これらはすべてsql_query
my sphinx.conf に含まれています。
コンソールで小さな結果セットに対して SQL を実行しようとしましたが、うまくいきました。すべて の MVA 列について、結果は次のようなデータを含む BLOB です。
等々。JOIN
/GROUP_CONCAT
組み合わせインデックスで正しく生成された 2 つの MVA 属性。ただし、MySQL 関数で生成された MVA 属性により、インデックス作成がサイレントに失敗します (データがほとんどまたはまったくインデックス作成されないように見えます)。これは、クエリがコンソールで完全に正常に機能しているにもかかわらずです..
したがって、データ形式は同じように見えますが、Sphinx は列の 1 つを拒否しています。これをデバッグするのに役立つ可能性のある MVA 属性を定義する際の落とし穴を知っている人はいますか?
sphinx - スフィンクスが文書を削除
私は長い間この問題を抱えており、解決策が見つかりません。これは誰もが Sphinx を使用して直面したことかもしれませんが、有益な情報は得られません。
1 つのインデックスと 1 つのデルタがあります。PHPモジュールで両方のインデックスを照会し、結果を表示しました。結果の ID ごとに、モデルのオブジェクトを作成し、そのモデルのメイン データを表示します。
データベースから 1 つの文書を物理的に削除します。
インデックスにクエリを実行すると、この削除されたドキュメントの ID がまだ (スフィンクスの結果セットに) 残っています。コードでこれを検出して表示を避けることができるかもしれませんが、結果が間違っているため、スフィンクスが提供する結果セットが表示されます。xxx total_found、実際は xxx-1 です。たとえば、Sphinx は最初の 20 件の結果を表示しましたが、この 20 件の結果のうちの 1 件はもう存在しないため、19 件の結果のみを表示する必要があります。
メイン インデックスは 1 日 1 回、デルタ インデックスは 5 分ごとに再インデックスします。
これに対する解決策はありますか??
前もって感謝します!!
ruby-on-rails - 2 つではなく 3 つのベクトルに沿った Sphinx の一意のキー
単一のレール アプリケーションでホストされている複数の「サイト」にまたがって思考スフィンクスを実装しようとしています。私は、thinking-sphinx の開発者と協力して詳細を整理しており、順調に進んでいますが、数学の問題については助けが必要です。
通常、思考スフィンクス検索インデックスで一意の ID を作成するための式は、ID を取得し、検索可能なモデルの総数を掛けて、現在インデックスが作成されているモデルの数を加算することです。
これはうまく機能しますが、entity_id をミックスに使用するようになったので、この ID を一意にするための 3 つの vextor があります。これらの 3 つの変数を使用して ID が決して衝突しないことを保証するための方程式を理解するのを誰かが手伝ってくれませんか:
エンティティ ID は整数です。
私は考えました:
しかし、それは衝突を引き起こします。
どんな助けでも大歓迎です:)
ruby-on-rails - Sphinx (Thinking Sphinx) または別の全文検索エンジンを使用して、検索語で始まるフィールドに優先順位を付けます。
Sphinx と Thinking Sphinx を使用して顧客データベースを検索しています。顧客のメタデータ (電子メール、電話番号など) は複数のテーブルにまたがり、Sphinx は顧客などに関するすべてのメモにインデックスを付けます。私が抱えている問題は、検索用語で始まるテキスト フィールドを検索で最初に表示することです。つまり、「hods」を検索すると、次の順序で結果が返されます。
- ホッズ
- ホッズ
- ホドソン
- メソッド
つまり、優先順位を付ける必要があります (大まかにこの順序で):
- フレーズの開始
- 完全な単語
- 単語の始まり
複合検索語 (例: "^hods | hods | hods* | *hods") を使用してこれを達成しようとしました。
このようなことで、適切な結果をすべて確実に見つけることができますが、ランク付け方法には影響しないようです!! ドキュメントにも有用なものが見つかりません!!
何か案は?これはSphinxで可能ですか?これが可能な他の検索ソリューションはありますか?
php - Sphinx の要件は、私の Webhostings プロバイダーで動作しますか?
webhosting-providers サーバー (one.com) で使用する検索エンジンをまだ探していますが、まだ見つかりません。
Sphinx について素晴らしいことを聞いたことがありますが、それを実行するための要件は何ですか?
私はマニュアルを読みましたが、多くは語っていませんが、うまくいくようです... 最初に何人かの専門家に尋ねたいだけです.
mysql 構成にアクセスできません... (私のサーバーではないため、mysql 設定用の my.cnf または my.ini ファイルを開いて編集することはできません)。
また、Sphinx は mysql データベースを「フルテキスト」にする必要はありませんよね?
ありがとう
mysql - mySQLデータベースに対する検索の作成
mySQLデータベースを介して自分のWebサイトの検索を作成しようとしています。私はSphinxを使い始めましたが、インデックスがリアルタイムで更新されないことを知るのをためらっていました。ほぼリアルタイムで更新されていることは確認しましたが、新しいコンテンツが1分ごとにデータベースに追加されるため、これが私のシステムにうまく適合しないのではないかと心配しています。この新しいコンテンツはすぐに追加する必要があり、更新のたびにインデックスを再作成するのは奇妙に思えます。
現在、Lucene上に構築されたSolrを調べていますが、データベース検索ではなくファイルベースの検索であるため、これも私のニーズに合わないようです。また、比較的単純な検索用に構成するのは非常に多くのように見えます。
このstackoverflowの質問も見つかりましたが、いくつか問題がありました。1つ目は、1つのフィールドだけでなく、多くのフィールドを検索していることです。また、純粋にSQLで実行された検索は、データベースに対して遅すぎる可能性があることを心配しています。データベースには、それ以上ではないにしても、数十万のレコードが格納されることが期待されます。
私が言及したソフトウェアまたは私が言及していないソフトウェアについて誰かが意見を持っている場合は、すべてのアイデアを歓迎します。違いがあれば、バックエンドにJavaを使用しています。ありがとう。
php - Sphinxの1つのインデックスで複数のソースを使用するにはどうすればよいですか?
Sphinx構成ファイルは、1つのインデックスに対して複数のソースをサポートすることを示唆していますが、実際に指定するにはどうすればよいですか?
構成ファイルのスニペットは次のとおりです。
次の形式で設定してみました。
また、ソース変数を2回使用してみました。例:
設定ファイルで使用する構文がわからないので、私はただの劣等生だと思います。何か案は?
2番目のコードスニペットを使用すると、次のエラーが発生します。
2つのソースはiwa_eventsとiwa_publicationsです。どちらにも一意のID列があり、両方のソースは個別にインデックスを作成すると機能します。
php - PHPの解凍に関する質問
問題は、なぜ4バイトを返す"N*"
必要substr
があり、それらがNとしてアンパックされるのかということです。そして、なぜ二重割り当て?
UPD:このコードはSphinxネイティブPHPコネクターの一部です。いくつかのコードハッキングの後、このコードが4バイト整数を抽出することが明らかになりました。substr
しかし、二重割り当ておよび/の背後にあるロジックN*
はまだ私にはわかりません。私はついにそれを理解するための報奨金を提供しています。
ruby-on-rails - Sphinx が新しく追加されたレコードのインデックスを作成しないと考える
私はスフィンクスを使用して、2 つのモデルとそれらの関連付けを検索しています。デルタ インデックスを使用しています。開発モード(Ubuntu)の私の開発ボックスでは問題なく動作します。ただし、ステージング ボックスの運用環境では、新しいレコードを作成するときに、新しく作成したレコードを検索可能にするために、インデックスを再度作成する必要があります。さらに奇妙なのは、スクリプト/コンソールを使用してレコードを作成すると、インデックスが作成されて検索可能になっているように見えることです。
アソシエーションが更新後に機能するように、すべてのアソシエーション モデルに対して、これら 2 つのモデル レコードのデルタを true に設定する after_save メソッドを用意しました。これがこれと関係があるかどうかはわかりません。
スフィンクスの宝石バージョンを考えて、アクセス許可を確認しましたが、すべて問題ないようです。何が間違っている可能性がありますか?
編集
http://freelancing-god.github.com/ts/en/common_issues.html#deltasもチェックアウトしましたが、機能していないようです。はい、サーバーは Phusion Passenger で実行されます。