検索機能が近似した結果を返している?

こんにちは。

フォーラムでこのトピックを検索していました: les passants - Autour d'une roue - Monocycle.info

トピックのタイトルは「les passants」です。

以前は、「passants in:title」で検索すると、このトピックが最初の結果の1つとして表示されていました。

しかし、現在は近似的な結果が表示されます。

「passants」の代わりに、「passe」、「pass」、「passage」、「passion」などが、正確な文字列「passants」よりも前に表示されています…

これはバグだと思いますか?

それが意図したものであるかどうかを知るには、検索について十分な情報がありませんが、それが役立つ場合は、単語を二重引用符で囲むことで正確な検索を行うことができます。

例:「passants」

「いいね!」 1

それは確かに役立ちますが、デフォルトの動作は不可解です。

不明な理由により、二重引用符で囲まれた正確な文字列を検索すると、「passants」がタイトルに含まれていない結果も返されます(ただし、最初の投稿のコンテンツには含まれています):

「いいね!」 1

フランス語では、「passants」は投稿の内容に対して検索する前に「pass」という語幹に還元されます。

語幹とは、トークンと同様の文字列ですが、同じ単語の異なる形が似ているように正規化されています。

「いいね!」 4

承知いたしました。

語彙素は言語に関連していますか?

フランス語でそのような単語を「pass」に削減するのはあまり意味がないように感じます。:thinking: 「passer」という動詞に(直接的または間接的に)関連していない「pass」で始まる単語がたくさんあることを考えると、これは助けになるというより混乱を招きます。

しかし、二重引用符で正確な文字列をターゲットにできるのであれば、それで十分です :slight_smile:

また、最後のスクリーンショットで二重引用符を使用したにもかかわらず、2番目の結果のタイトルに「passants」が含まれていないのはなぜですか?

これらはPostgresで設定可能ですが、Postgresのフランス語実装がこれをすべて削減している原因です。

discourse_development=# select to_tsvector('french', 'passants');
 to_tsvector
-------------
 'pass':1
(1 row)

discourse_development=# select to_tsvector('english', 'passants');
 to_tsvector
-------------
 'passant':1
(1 row)

より高度な辞書を使用することもできますが、設定が非常に複雑です。

「いいね!」 3