検索欄にトピックのタイトル(表示されているそのままの、装飾的なエンティティ付き)をコピー&ペーストしました。
New Lowe’s commercial with UniGeezer
結果なし:
検索欄の装飾的なアポストロフィを「通常の」アポストロフィに置き換えました:
New Lowe's commercial with UniGeezer
これでトピックが表示されました。
私の提案としては、検索時にすべての装飾的な文字を元の文字と一致させるようにしてほしいです。
検索欄にトピックのタイトル(表示されているそのままの、装飾的なエンティティ付き)をコピー&ペーストしました。
New Lowe’s commercial with UniGeezer
結果なし:
検索欄の装飾的なアポストロフィを「通常の」アポストロフィに置き換えました:
New Lowe's commercial with UniGeezer
これでトピックが表示されました。
私の提案としては、検索時にすべての装飾的な文字を元の文字と一致させるようにしてほしいです。
いい指摘ですね、@sam さんはこれをどう扱うべきでしょうか?
アクセント記号はどうですか?
すでにダイアクリティカルマークの正規化が行われているので、同様の方法でこれを修正できるかもしれません。
tgxxworld さんが検討してみてください。
@Canapin この問題はまだ再現できますか?ローカルで再現を試みましたが、できませんでした。アポストロフィは検索データから削除されるため、検索には影響しないはずです。
discourse_development=# SELECT TO_TSVECTOR('english', 'New Lowe’s commercial with UniGeezer') @@ PLAINTO_TSQUERY('english', 'New Lowe’s commercial with UniGeezer');
?column?
----------
t
(1 row)
この問題に遭遇しているサイトへのリンクをいただけますか?そうすれば再現を確認できます。よろしくお願いします!
まだ問題が解決していません。正確な文字列("で囲まれたもの)を検索すると発生します。
https://unicyclist.com/search?q=%22New%20Lowe%E2%80%99s%20commercial%20with%20UniGeezer%22
と
https://unicyclist.com/search?q=%22New%20Lowe%27s%20commercial%20with%20UniGeezer%22
の違いです。
ご報告ありがとうございます。これは基本的に、検索語が " で囲まれている場合の完全一致検索に影響します。問題点は、トピックの実際のタイトルが New Lowe's commercial with UniGeezer であるのに対し、装飾されたタイトルが New Lowe’s commercial with UniGeezer となっていることです。完全一致検索を行う際、指定された語はトピックのタイトル(実際のタイトル)とのみ照合され、装飾されたタイトルとは照合されません。
ここで難しいのは、’ を ' に無条件に置換できないことです。’ が含まれるトピックタイトルが、結果として一致しなくなってしまうためです。クライアント側でトピックタイトルを表示する際に異なる文字を出力しているため、ここでどうすればよいのか少し迷っています。
@gerhard @sam 以前、引用に関する同様の課題に取り組まれたようですが、ここでどのような対応が可能かアイデアはありますか?正直なところ、これはごく一部の検索クエリにしか影響しないエッジケースです。そのため、この件はあえて見送る(pun on this)方向で考えています。
冗談ではありません!![]()
インデックスと検索語で ’ を ' に正規化することは可能かもしれません。しかし、この問題を修正するために多大な労力を費やす価値があるかどうかは正直なところわかりません。
これは検索インデックスとは関係ありません。完全一致の場合、Post#raw と Topic#title に対して照合します:
なるほど、そうですね…ここには簡単な解決策はなさそうです。これはただ我慢するしかない細かい問題だと思います。