web-dev-qa-db-ja.com

スマート検索で一般一致と完全一致が正しく機能しないのはなぜですか?

私のサイト(com_Finder)でJoomlaスマート検索を使用しています。 not connectedという用語が含まれている記事があります。

not connectedという用語を検索すると、が表示されます。

Word connectedだけを検索すると記事は表示されます

"not connected"」という単語を検索すると(引用符で囲まれています)記事が表示されます検索で。

私が理解しているように、引用符は完全一致を表し、一般的な一致(引用符なし)よりも少ない結果を示す必要があり、その逆ではありません。

引用符なしで記事が表示されないのはなぜですか?

1
Dor Levi

時間があるときにもう少し調べて、この問題を複雑にするcom_Finderのバグを発見しましたが、これが(IMO)の動作方法とバグの回避策です。

「ない」という単語はブール値の意味を持っているので、文字列を入力すると

not connected

それは、私のコメントの1つで提案した意味、「接続された」という単語を含むクエリを除く空のクエリに対するすべての応答という意味になります。空のクエリの結果は空のセットであるため、何も見つかりません。 。

ブール値の意味を「アンロード」するには、次のように引用符で囲みます。

"not" connected

それはその背後にある理論であり、それがどのように機能することになっているのですか?残念ながら、そのクエリは私が参照したバグをトリガーします。 "not"とすると、回避していたはずのブール値を復活させ、返された結果セットから "connected"されているすべてのエントリを除外します。微妙なバグ、え?

では、どうすればこれを回避できますか?検索にブール用語が1つしかない限り、それを引用符で囲み、最後の用語にします。

connected "not"

そして、それにより、「not」と「connected」の両方が含まれるすべてのエントリが、探している結果になります。

1
Arlen