Tracの検索機能
Tracの検索において、複数単語を入力した場合はANDでの検索となります。ただし、複数の検索文字列として認識させるためには、
1.半角ダブルクォーテーションで文字列を囲む(例:"ほげ" "ふ が"⇒「ほげ」と「ふ が」に)
2.半角シングルクォーテーションで文字列を囲む(例:'ほげ' 'ふ が'⇒「ほげ」と「ふ が」に)
3.半角スペースで区切る(例:ほげ ふ が⇒「ほげ ふ」と「が」に)
といった感じで指定する必要があります。
上記の例では「ほげ」と「ふ」の間は全角スペース、「ふ」と「が」の間は半角スペースなので、このような挙動を示しますが、検索エンジンなどでは全角スペースも区切り文字と見なすものもあります。
検索エンジンの入力でも、元々半角スペースで区切る習慣のある人の場合は問題になりませんが、そうでない人の場合は(期待に反して(?))検索結果が得られないということになってしまいます。
対応方法としては・・・
1.query文字列中の全角スペースを半角スペースに置換するようなプラグインを作成する。
2.検索処理時に全角スペースを半角スペースに置換するようにTrac本体を書き換える。
3.検索処理時に全角スペースでも区切られるようにTrac本体を書き換える。
といった案が出てきますが・・・とりあえず、3の対応をしてみました。
search/web_ui.pyの
for term in re.split('(".*?")|(\'.*?\')|(\s+)', query):の部分を
for term in re.split(u'(".*?")|(\'.*?\')|(\s+)|( +)', query):のような感じで書き換えればオッケーな感じです(入力しているのは「全角スペース」になるので注意してください)。
「Subversion・Trac・etc.」カテゴリの記事
- Kanboard(2017.06.13)
- XML parsing failed : (413 Request Entity Too Large)(2017.06.11)
- TortoiseSVNとクライアント証明書(2012.09.17)
- Trac 1.1.1(dev)(2012.09.15)
- Trac1.0 リリース(2012.09.09)
Comments