品質との戦いについて

ちょうど3日後、さまざまな方向にあるSphinxのチューニング、最適化、検索品質、スケーリング(これはまだ全文検索エンジンであるだけでなく)について、多くの秘密をすべての人に明らかにします 。 投稿の最後の詳細。



そしてここで、今ここで検索の品質に関する秘密の一つを明らかにし始めます。 これは、バージョン2.0.2-betaで追加された式ランカーと呼ばれる新しいものです(正しいロシア語の翻訳はまだ発明されていません)。これについては、もう少し詳しく説明します。 つまり、 独自のランキング式をオンザフライ設定でき、リクエストごとに個別のランキング式を設定することもできます。 一般的に、4次元のチェスやオペラ歌手と一緒に自分のMatrixNetを構築しようとする機会を全員に与えるデザイナーのようなもの。



すぐに



SphinxQLのデフォルトのランキングモード(構文を使用する拡張クエリモード用)のエミュレーションは、たとえば次のようになります。

SELECT *, WEIGHT() FROM myindex WHERE MATCH('hello world')

OPTION ranker=expr('sum(lcs*user_weight)*1000+bm25')







SphinxAPIを介して、それぞれ:

$client->SetRankingMode(SPH_RANK_EXPR, "sum(lcs*user_weight)*1000+bm25");









仕組み



ランキング式では、「通常の」式のように、ドキュメント属性と数学関数を使用できます。 しかし、ランキング式のそれらに加えて-そしてそれだけで-ランク付けに固有の値と関数がいくつかあります。 つまり、ドキュメントレベルの要素、フィールドレベルの要素、およびフィールドのセットに従ってすべてを集約する関数。 これらの追加要因はすべて、 テキストの要因であり 、それらです。 文書のテキストとリクエストに依存し、その場で計算される特定の数値。 たとえば、現在のフィールドまたはドキュメント全体で一致する一意の単語の数は、単なるテキスト要素になります。 科学では、 非テキスト要因があります 、それら。 テキストに依存しないあらゆる種類の数字。 これは、ページビューの数、製品の価格などのようなものです。 しかし、これは単純に属性に入れて、ランキングの内側と外側の両方で使用できます。 参考のために、因子はシグナルとも呼ばれます 。 それはまったく同じです。



要因は何ですか



ドキュメントレベルの要因は次のとおりです。



フィールドレベルの要因は次のとおりです。



現時点での集計関数は1つ、SUMです。 関数内の式はすべてのフィールドに対して計算され、結果が合計されます。 これらの同じSUMは、異なる式を内部に使用して、いくつか実行できます。

明らかな理由から、フィールドレベル係数は集約関数内で厳密に発生する必要があります。 最終的に、特定のフィールドに「リンク」せずに、それぞれ正確に1つの数値を計算する必要があります。このような要因には物理的な意味はありません。 もちろん、ドキュメントレベルの要素と属性は、式のどこでも使用できます。



既存のランカーをエミュレートする方法



実際、既存のすべてのランク付け者は、新しいクールな式の形で非常に単純です。 ランカーごとに最大2つの要因。 リストは次のとおりです。



もちろん、エミュレーションは組み込みのランカーを使用するよりも遅くなります。 それでも、コンパイルされたコードは式計算機よりも高速です! しかし、私が不思議に思うのを止めることのできないスローダウンは、たいてい重要ではありません。 検索が一致し、数十万、数百万のドキュメントをランク付けする場合でも、「マイクロ」ベンチマークで約30〜50%の差がありました(文字通り、組み込みのランカでは0.4秒、エミュレーションでは約0.5〜0.6秒)。 一致するドキュメントが1〜1万個未満の場合、違いをまったく識別できないと思われます。



次は何だ!?



これらすべてをどうするか? 検索の品質を改善する機会の観点から、非常に多くのことが可能になりました。 実際、今、あなたは好きなようにランキングを完全にひねることができます。 これまで考えられなかった新しい要素がたくさんありますが、今ではその場ですぐにひねることができます。 リクエストに応じて新しいファクターを迅速かつ簡単に追加する技術的な機会がありました-商業顧客のリクエストに応じて、多くのファクターがそのように追加されました。

これは氷山の一角にすぎないことは明らかであり、すぐに多くの質問があります。この「品質」をどのように測定するか、公式をねじる方法などです。 しかし、私はゆっくりと書きますが、すぐに話します。したがって、この投稿をライブで詳細に聞きたい場合は、検索の関連性と品質について2倍に学び、同時に投稿の冒頭で発表された他のすべてについてのいくつかのレポートを聞いてください。 会議 。 (ピーター。12月4日、日曜日。無料ですが、登録が必要です。まだいくつかの空き場所がありますが、今すぐ急ぐ必要があります。)



みなさん、こんにちは、検索品質との戦いで頑張ってください:)



All Articles