Closed kou closed 7 years ago
view は <%= call_hook(:view_issues_show_details_bottom, :issue => @issue) %>
と<%= call_hook(:view_issues_show_description_bottom, :issue => @issue) %>
があるのでどちらかを使える。
Wikiは簡単にできる。
c.select_value("select pgroonga.command('select', ARRAY['table', pgroonga.table_name('index_searcher_records_pgroonga'), 'filter', 'text *S \"#{w}\" && original_type == \"WikiPage\" && original_id != 1', 'output_columns', 'original_id, original_type,text,_score', 'sort_keys', '-_score'])::json")
output columns にはテキス自体はいらない。そのページへのリンクを作るために必要な情報さえあれば。 Wikiのサイドバーにコンテンツを追加するフックがない。
project_id
みたいに issue_id
を追加して以下のようにやるとそれっぽい結果にならないだろうか。
select --table searcher_records \
--filter '(description *S "..." || notes *S "...") in_values(original_type, "Issue", "Journal") ' \
--drilldown issue_id
これでダメそうなら、最初の案の通り専用のテーブルを追加してやるのがいい気がする。
https://www.slideshare.net/kou/groongaseminar201708 によると PGroonga でも v2 演算子を使うようにすれば SQL から全文検索できる。 Mroonga と PGroonga で完全に書き方が分かれてしまうので、互いに参考にすることができなくなってあんまりうれしくない。
Merged #35
このプラグインのスコープかどうかから検討する必要があると思いますが、今見ているissueと類似のissueを検索できる(issue表示画面に勝手に類似issueが表示される方がよさそう)と「この問題はどこかで見た気がするな。。。どのissueだろう。。。」というときにすぐに見つけられてうれしいです。
技術的には、Mroongaの場合は、1つテーブルを用意して、1issue(+全コメント)につき1レコードを作ってそこのカラムにテキストを格納し、そのカラムに
TokenMecab
な全文検索用インデックスを張って、そのカラムに対して検索対象のissue(+全コメント)のテキストを検索文字列として(IN BOOLEAN MODE
じゃなくて)IN NATURAL LANGUAGE MODE
で全文検索すると実現できます。イメージ: