Tracで全文検索(Search.py)

サラトガIT日記 > Trac > Tracで全文検索(Search.py) Tracで全文検索(Search.py)

※実経験の記憶を頼りに自宅の PC 環境(VMWareなど)で再現している内容もあるのでご注意下さい

2008-03-24

 

Trac で何気なく右上の検索を使ってみたら、いきなり Internal Server Error が発生。
(Trac のバージョンは trac-0.10.4-ja-1)

Apache のレスポンスコードを見ても 500 が返ってます。エラーメッセージを見ると、検索文字数が少ないってことなのですが、これで Internal Server Error っていうのもちょっとどうかと思う。

Internal Server Error が返されるときは、コードに致命的なバグがあったり、Web アプリケーションとは別の要素(データベースなど)との通信が切れたり、そんな感じの時に発生するイメージがあるので焦ります。

500 Internal Server Error (Search query too short. Query must be at least 3 characters long.)

そこで、ソースを追ってみると、Seerch.py の 175 行目付近で、該当のコードを発見。意図的に TracError にしているわけですね。

# Refuse queries that obviously would result in a huge result set
if len(terms) == 1 and len(terms[0]) < self.min_query_length:
    raise TracError('Search query too short. '
                    'Query must be at least %d characters long.' % \
                    self.min_query_length, 'Search Error')

ちなみに、最小文字数の設定は trac.ini で設定可能ですが、管理者モードだとブラウザからも設定できるかもしれません。

$ vi trac.ini

[search]
min_query_length = 3

関連記事

上記の記事に関連する記事(最新の10件)です。