0

これは検索を実行するための私のコードです

 SELECT d.deal_id,
    d.deal_title,
    d.friendly_url
    FROM wp_deals AS d
   WHERE MATCH (d.deal_title) AGAINST ('Historic China eight day tour' IN BOOLEAN MODE)
   GROUP BY d.deal_id

それは正常に動作し、14の結果が得られます。それらの1つは

グレート サンディ ストレイツの 2 泊の自然体験ツアー (サンセット クルーズなどを含む 2 名様向け)。最大 $1,071 オフ!

しかし、「with」または「more」を検索すると、

SELECT d.deal_id,
   d.deal_title,
   d.friendly_url
 FROM wp_deals AS d
WHERE MATCH (d.deal_title) AGAINST ('more' IN BOOLEAN MODE)
GROUP BY d.deal_id


 SELECT d.deal_id,
   d.deal_title,
   d.friendly_url
   FROM wp_deals AS d
   WHERE MATCH (d.deal_title) AGAINST ('with' IN BOOLEAN MODE)
   GROUP BY d.deal_id

and と more の両方が彼らのものですが、結果は得られません。私はこのタイプの検索クエリの専門家ではありません。

しかし

彼らの「ツアー」で検索すると、うまくいきます。"tour"、"with"、"more" はすべて 4 文字であり、タイトルにも含まれているため、理解できませんでした。

あなたは天才です..

あなたが提案することは、それがうまくいくことです。

前もって感謝します。

4

1 に答える 1

0

ブール全文検索では、ストップワードリストが適用され、「some」や「then」などの一般的な単語はストップワードであり、検索文字列に存在する場合は一致しません:http: //dev.mysql.com/doc/ refman / 5.5 / en // fulltext-boolean.html

ストップワードリスト:http ://dev.mysql.com/doc/refman/5.0/en/fulltext-stopwords.html

最もよく知られている解決策は、リストを無効にするか、リストに値を追加/削除することです:MYSQLでストップワードをリセットする方法は?

また :

SELECT d.deal_id,
   d.deal_title,
   d.friendly_url
FROM 
   wp_deals AS d
WHERE MATCH (d.deal_title) AGAINST ('+more*' IN BOOLEAN MODE)
GROUP BY d.deal_id
于 2013-01-11T07:31:54.400 に答える