redmine_full_text_search icon indicating copy to clipboard operation
redmine_full_text_search copied to clipboard

AND検索の対象フィールド拡張可否

Open Stag0007 opened this issue 11 months ago • 16 comments

下記フィールドを跨いでの「AND検索」が出来ず、何とか出来るようにならないでしょうか。。。 Redmine5.1では、全検索対象テキストが実装され、 こちらのプラグインでも実装いただければ、とてもありがたいです。

・AND検索可  ・題名 AND  題名  ・題名 AND 説明  ・説明 AND 説明

・AND検索不可  ・題名/説明 AND コメント/カスタムフィールド  ・コメント#1 AND コメント#2  ・コメント AND カスタムフィールド  ・カスタムフィールドA AND カスタムフィールドB

Stag0007 avatar Jan 24 '25 06:01 Stag0007

検索対象を指定した全文検索をしたいというのであっていますか?

それとも、Redmineのチケット検索画面と統合できないか?という話ですか?

kou avatar Jan 24 '25 06:01 kou

全文検索で複数フィールドを跨いでAND検索出来れば、というお願いになります。 具体的には、題名、説明、コメント、カスタムフィールドの値を検索対象に出来れば。

Stag0007 avatar Jan 24 '25 07:01 Stag0007

あれ、今ってすべてのフィールドに対しての全文検索になっていませんか?

kou avatar Jan 24 '25 07:01 kou

https://redmine.example.com/search とかの検索画面での話ですよね?

kou avatar Jan 24 '25 07:01 kou

全文検索自体は全てのフィールドが対象なんですが、(多分カテゴリ以外) AND検索を行うと、複数フィールドを跨いでヒットしないようになっているかと思います。 下記バージョンを使用しています。 Redmine:4.2 full text search:1.0.4

Stag0007 avatar Jan 24 '25 07:01 Stag0007

うーん、AND検索はどうやってやっていますか?

「キーワード1 AND キーワード2」ではなく、「キーワード1 キーワード2」と指定することになります。

ところで。。。 Redmine 4.2はすでにサポートされていないのでバージョンアップしたほうがいいかと思います。。。

kou avatar Jan 24 '25 07:01 kou

ご記載いただいた通り、キーワード1 キーワード2で検索しています。 使用プラグイン未対応等があり、難しいです。。。

Stag0007 avatar Jan 24 '25 07:01 Stag0007

実際の検索画面ではこのような感じです。

Image

Stag0007 avatar Jan 24 '25 07:01 Stag0007

あぁ、わかった気がします。

今は、検索結果の各エントリーがチケットの説明とかチケットのコメントの単位になっているのを、チケットに紐づくどれか(説明でもコメントでもカスタムフィールドでも)がヒットしたら、対象がどれでも紐づいているチケットが検索結果のエントリーにしたい、という話な気がします。とすると、チケット一覧ページでの検索フォームに統合するのがそれっぽいんですよねぇ。その場合、ソートが効かなくなる(既存のチケットのソート機能を使うことになる)のですが、それはアリですか?

使用プラグイン未対応等があり、難しいです。。。

[PR] 有償ですが、クリアコードという会社が未対応プラグインのメンテナンスも含めてRedmineのバージョンアップサポートやこのプラグインのサポートも含んだサポートサービスを提供しているので、必要であれば問い合わせしてみてください。

kou avatar Jan 24 '25 07:01 kou

全文検索=チケットの検索機能のイメージで使用していますので、その通りです。 ハイライトが使えなくなるのが残念ですが。。。 チケット一覧のフィルターに全文検索が追加されるイメージでしょうか。 既存のチケット一覧でのソート機能でも大丈夫です。

サポートの紹介までいただき、ありがとうございます。検討させていただきます。

Stag0007 avatar Jan 24 '25 08:01 Stag0007

ハイライトが使えなくなるのが残念ですが。。。

あぁ、そうですね。UI的にハイライトを表示する箇所がなくなるのでそうなります。タイトルにマッチした場合だけならいけるかも。。。?

チケット一覧のフィルターに全文検索が追加されるイメージでしょうか。

検索対象に既存の「題名」や「説明」のように「全文検索」が追加されるみたいなイメージですか?

そうではなくて、できれば、検索対象のところではなく、「含む」とか「いずれかを含む」とかが出てくる検索方法のところでやれるといいなぁと思っています。たとえば、このプラグインがインストールされた状態で既存の「含む」とかの検索方法を指定したら高速に検索できるようになる、みたいなイメージです。(新しい検索方法を追加するのではなく。)

kou avatar Jan 24 '25 08:01 kou

その場合、検索対象は各フィールドを指定して、フィールド同士はor条件とかですか? あまりイメージが出来ないですが、全文検索からは離れる気が。

Stag0007 avatar Jan 25 '25 06:01 Stag0007

検索対象は各フィールドを指定しますが、フィールド同士はANDです。既存のチケット一覧のフィルターもANDなはずなので、それと同じになります。

あれ、うーん、あぁ、フィールドごとにANDしたいわけじゃなかったんでしたね。各キーワードがどのフィールドに出現してもよくしたいのか。それが「全検索対象テキスト」フィールドになるわけですか。

「全検索対象テキスト」フィールドのRedmineの実装をざっと見てみましたが、このプラグインで置き換えることもできそうな気はするので、その方向で実現するのがよさそうな気がしてきました。

kou avatar Jan 27 '25 01:01 kou

フィールド同士はANDになってしまいますか。 フィールドを跨いでのAND検索がこちらのプラグインで実装いただけるなら、とてもありがたいです。

Stag0007 avatar Jan 27 '25 04:01 Stag0007

フィールドを跨いでのAND検索がこちらのプラグインで実装いただけるなら、とてもありがたいです。

はい、こちらフィールドを跨いでのAND検索を実現できるように進めていきますね。 具体的には、チケット一覧での「全検索対象テキスト」フィルターを拡張する方針で実現して行こうと考えています 🙏🏾

Image

otegami avatar Jan 30 '25 02:01 otegami

TODO

全検索対象テキストを利用して、フィールドを跨いだAND検索をできるようにする

  • RedmineのIssueQuery#sql_for_any_searchable_field(全検索対象テキスト)の調査
  • Full text search plugin側で、IssueQuery#sql_for_any_searchable_fieldを拡張する
    • [x] 拡張用のmoduleをスケルトンで実装: GH-164
    • [x] スキーマの設計と実装: GH-165
    • [ ] 検索部分の実装
    • [ ] テスト作成

otegami avatar Jan 30 '25 07:01 otegami