問題タブ [match-against]

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.

0 投票する
1 に答える
1828 参照

mysql - MySQL 全文検索とスコア

フルテキストを使用した検索の関連性とフィルター処理 (照合) に問題があり、以下で説明します。

150 万件を超えるレコードを含む Songs というテーブルがあります。このテーブルには多くの列が含まれており、そのうちの 2 つは名前とアーティストであり、これら 2 つの列は全文索引付けされています。

値と正確に一致するタイトルと曲を検索すると、低いスコアが表示されます。たとえば、私にとっては意味がありません。

データ:

以下のクエリを実行すると、次のようになります。

完全一致を探していますが、なぜ 54.7 になるのでしょうか??

+記号を削除すると

まったく関係のない他の多くの記録についても、同様の回答をするつもりです。

私にとって、「+」記号を使用した検索は 100 近くになるはずですが、そうでないのはなぜですか?どうすれば改善できますか?

0 投票する
1 に答える
121 参照

php - solr などを使用して MySQL の match-against で %someword% と同じ効果を得る方法

重複の可能性: 「*abc」などのプレフィックス ワイルドカードを match-against で使用する方法

しかし、私は私の答えを見つけることができないので、重複して申し訳ありませんが、この質問をしました.

MySQL でクエリを実行しています

レコードは次のとおりです。

  1. 私はジョン・ドウです。
  2. ジョン・ドウは男だ。
  3. ジョンの姓はドウです

%john d%のように、最初の 2 つの結果は同じ順序で一致し、ワイルドはレコード内の任意の場所に一致するため、一致しますが、大規模なデータ セットでは、これによりパフォーマンスが低下します

だから私はグーグルで 検索し、代わりにMATCH AGAINST IN BOOLEAN MODEを見つけました。今、私の検索用語は次のとおりです。

同じ順序で結果を取得したいだけです。(例: 1. 私は john doe です。2. john doe は男性です) この検索語 john d についてですが、達成できません。 %john d% のように、私の希望は得られますが、パフォーマンスが低下します。高速なパフォーマンスで MySQL で目的の結果を得るにはどうすればよいですか。

重複の可能性: '*abc' などのプレフィックス ワイルドカードを match-against で使用する方法

@GolezTrolは、文字列を逆にする別の列を作成するソリューションを提供しました。

次に、 '%john d'を探す代わりに、'john d%' を探すことができます。これは、列にインデックスが付けられている場合にはるかに高速です。

しかし

@PeerBr文字列の途中から何かを見つけたい場合は、文字列を反転しても役に立たないことに注意してください。通常のインデックスを使用して'Blue%'と入力しても、逆 inices を使用して'Blue%'を反転しても、 "Jimmy Blue Jones"は見つかりません。

ありがとう

0 投票する
0 に答える
623 参照

mysql - MySQL MATCH AGAINST: 複数の単語が一致してもスコアは同じ?

私は次のようなクエリを持っています

この特定のクエリの結果は次のとおりです。

ご覧のとおり、ID 14116 の行には、ap.name に blue と tomatoe の両方の単語が含まれています。2 つの単語が一致した場合でも、1 つの単語が一致した場合と同様にスコアは同じです。だから私は試しAGAINST('+style +mode' IN BOOLEAN MODE)てみAGAINST('+*style* +*mode*' IN BOOLEAN MODE)ましたが、望ましい結果を得ることができません.より多くの単語が一致するほど、より高いスコアが返されます. 何か案は?

0 投票する
1 に答える
154 参照

mysql - Mysql - Match Against で数字を使用する

match against 句を使用して、この mysql コードを変換したい

これとの試合でこれに相当するものは何ですか?