clear-code / redmine_full_text_search

Full text search for Redmine
MIT License
63 stars 24 forks source link

Internal Server Error when I make new query with single-quote only #50

Closed kazuocsi closed 6 years ago

kazuocsi commented 6 years ago

v0.7.2をRedmine v3.4.5-stableと組み合わせて利用しています。

チケットの検索を ' (シングルクオート)のみで実施すると、 Internal Server Error が発生します。 (意味のある検索かどうかはともかく……)

その際の production.log には、以下のように記録されていました。

I, [2018-06-07T14:45:01.023089 #1486]  INFO -- : Started GET "/search?utf8=%E2%9C%93&scope=&q=%27" for 127.0.0.1 at 2018-06-07 14:45:01 +0900
I, [2018-06-07T14:45:01.025122 #1486]  INFO -- : Processing by SearchController#index as HTML
I, [2018-06-07T14:45:01.025237 #1486]  INFO -- :   Parameters: {"utf8"=>"✓", "scope"=>"", "q"=>"'"}
I, [2018-06-07T14:45:01.038254 #1486]  INFO -- :   Current user: xxx (id=xxx)
W, [2018-06-07T14:45:01.107041 #1486]  WARN -- : Mysql2::Error: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '', '((original_type == "Issue" && is_private == false && in_values(project_id, 1' at line 19:         select mroonga_command(
                 'select',
                 'table', 'searcher_records',
                 'output_columns', '*,_score',
                 'columns[title_digest].stage', 'output',
'columns[title_digest].type', 'ShortText',
'columns[title_digest].flags', 'COLUMN_SCALAR',
'columns[title_digest].value', 'highlight_html(subject+title+filename+name+short_comments)',
'columns[description_digest].stage', 'output',
'columns[description_digest].type', 'ShortText',
'columns[description_digest].flags', 'COLUMN_VECTOR',
'columns[description_digest].value', 'snippet_html(content+text+notes+description+summary+value+long_comments) || vector_new()',
'columns[calculated_updated_on].stage', 'filtered',
'columns[calculated_updated_on].type', 'Time',
'columns[calculated_updated_on].flags', 'COLUMN_SCALAR',
'columns[calculated_updated_on].value', 'max(original_created_on,original_updated_on)',
                 'drilldown', 'original_type',
                 'match_columns', 'name*100||identifier*100||title*100||subject*100||filename*100||description||summary||comments||content||notes||text||value',
                 'query', ''',

本家 RedmineJP ではどちらもエラーにはならないようでした。

okkez commented 6 years ago

報告ありがとうございます! こちらの手元でも再現することが確認できました。

kazuocsi commented 6 years ago

修正ありがとうございました。 v0.7.3に更新後、'のみの検索でもエラーにならず、期待する検索結果が得られるようになりました。