特定の用語は検索から除外されますか?

I’m having a few difficulties with the search functionality today.

We have an automated process we creates topics based on a lecture from a course, an example may be;

About ‘Implementing Health & Damage’

I found myself wanting to reduces the maximum number of characters for a topic length and decide I’d do a quick search to see how many of our automated topics are quite long, to get a feel for the suitable max length.

If I search using the above, I’ll get result, but I need the search to be a little more general than that, so I’ve tried searching for;

About ’

…knowing that is the start of the format we always use. When I do, I don’t get any results, if I add another word after the apostrophe I do get results. I assumed at that point it was related to the apostrophe, but nope, if I search for just;

About

I get no results, yet if I search for;

Test

I do get results! This indicates there isn’t a limitation on the number of words as a minimum for a search, and we have a 3 character limit set for the term, so it isn’t that. The only thing I can think of is that there is a list of “words” that are being ignored from a search, yet I don’t think we’ve set these up.

Any information would be appreciated. :slight_smile:


Update

I have also tested this with “because”, “and”, “the” and these all produce no results, so I’m feeling that there is a list of “common words” which are being ignored, but because I don’t have access to these via the settings I cannot alter them, and, cannot perform the search I want to perform.

Yes, I believe these are “stop” words — see:

I’m not sure if things have changed much since two years ago, but there doesn’t seem to be an easy way to change those.

「いいね!」 8

Hi Kris,

Thanks for the reply.

Yeah, I thought as much. It’s a pain on this occasion as in this specific case the word does have value.

I guess using DataExplorer wouldn’t get around this either?


Update

Actually, via DataExplorer it works. I guess a full text search isn’t carried out when querying the topic title field.

Looks like a work-around :slight_smile:

「いいね!」 7

私もちょうどこの問題に遭遇しました。非常にイライラします。何か更新はありますか?今すぐこれを変更する方法はありますか?「About」は検索のフィルタ対象にしてはいけません!私がMeta上でこの問題に遭遇した経緯は以下の通りです:

プラグインカテゴリにいた際、一部のプラグイントピックでは返信が自動削除され、他のトピックではされないことに気づきました。そこで、そのカテゴリの「About」トピックにこの理由の説明がないか確認しました。説明はありませんでした。そのため、それについて質問しようとしたのですが、まずプラグインへの機能リクエストを投稿したかったのです(返信が自動削除されるトピック内で :grinning_face_with_smiling_eyes:)。そこでメインのカテゴリ一覧に戻り、返信を投稿しました。その後、再度カテゴリ一覧に戻り、The About the Plugin category トピックを探しました。これは古いけれどピン留めされたトピックで、すでに読んだ記憶があったため、一覧からは見えなくなっていました(日付に応じた適切な位置に移動されていたためです)。:roll_eyes: まあ、問題ありません。検索すれば見つかるだろうと思い、検索を試みました。もちろん、結果はゼロでした。

より大きな問題は、UI 内にこれに関する警告やメッセージが全く表示されないことです。検索は静かに失敗するだけです。もしこれが Postgres の制限により修正不可能であるなら、Discourse に「検索からフィルタリングされた単語」をユーザーに通知する機能を追加することを強く提案します。そうでなければ、非常に混乱を招きます。

「いいね!」 1

「about」が現在の Postgres のストップワードリストに含まれていることにも驚きですが、以下がそのリストです:

回避策として、カテゴリ内でピン留めされたトピックを検索する方法があります。

in:pinned #support

「いいね!」 1

Jeff さん、ありがとうございます。ピン留めされたトピックを検索できるなんて知りませんでした。Discourse の機能には、いつも何か新しい面白い発見がありますね。:smiley:

でも…検索しても結果が見つからないユーザーに対して、警告を出すような仕組みは考えられないでしょうか?彼らは「結果があるはずだ」と分かっているのにです。今、全リストを見てみると、本当にかなり長いリストになっていますね…

「いいね!」 2

検索クエリがすべてストップワードで構成されている場合に警告を表示するのは良い考えです。@tgxworld さん、実装はどの程度難しいでしょうか?

ストップワードのリストをハードコードしたくないため、PostgreSQL にクエリを実行し、「これらの単語はすべてストップワードですか?」と判断できる仕組みが必要です。

「いいね!」 3

検索クエリに追加の列を返すことで、検索語がストップワードのみで構成されているかどうかを判別できます。これはそれほど難しいことではありません。ただし、その追加列をどこに注入するかを突き止めるために、もう少し深く調べる必要があります。最終的な目標は、検索語がすべてストップワードかどうかを判断するために余計なデータベースクエリを実行しないようにすることです。

「いいね!」 2

検索結果がない場合、クエリがすべてストップワードかどうかを確認するチェックを実行するのはどうでしょうか?その場合、結果が不十分な場合にのみ追加のチェックを実行することになります。ストップワードリストによると、例えば「doing should now」を検索した場合などです。

最悪の場合、リストを複製してサーバー側でチェックを実行することも可能ですが、それはハック的な手法になります。127 文字列しかないので。あるいは、起動時にストップワードリストをクエリしてキャッシュすることを検討してもよいかもしれません。

「いいね!」 2

はい、検索結果に追加の列を設けるという私の意図と似た考え方です。検索が空の場合、その列を参照して、すべての用語がストップワードだったためか、それとも一致が0件だったためかを判別します。

「いいね!」 2

ストップワードは他の言語でも機能しますか?翻訳されたものも停止されますか?それとも、技術的なニーズに接続されている場合にのみ英語のものが停止されますか?

異なる言語のファイルがあります

「いいね!」 2

なるほど。ほとんどすべての形式の人称代名詞と動詞 be、そして or、only、when などのいくつかのフィラーがほとんどすべて含まれています。たとえば、文中にペルソナをほとんど必要としないため、検索でほとんどすべてをバイパスできます。しかし、確かに、データベースをより管理しやすくします。

しかし、言語ごとに構築されていることを知っておくのは良いことです。ありがとう。

「いいね!」 2