毎度毎度のSolrネタ。
「Solrでは後方一致のワイルドカード検索(例えば「*test」みたいなやつ)はできない」っていうのがこれまでの常識で、実際昔のバージョンではそーゆー検索するとエラーになるし、そのためにSolrにはわざわざ擬似的に後方一致検索をするための
ReverseWildcardFilterってFilterもあるくらいだったのに、今手元のSolr 4.2.1(QueryParserはdefaultのまま)で何の気なしに後方一致のクエリ投げてみたらあっさり通ってしまった。
SolrのWikiからリンク貼られてる
QueryParser.classic見ても「Note: You cannot use a * or ? symbol as the first character of a search.」って書かれてるのに…と思って調べてみたら、現行のLuceneの
WildcardQueryクラスでは「In order to prevent extremely slow WildcardQueries, a Wildcard term should not start with the wildcard *」って書き方になっていて、どうやら後方一致は「プログラム的には使えるけど、速度的に不利だから使わないほうが良い」扱いに昇格した模様。
現実的に後方一致を必要とする局面は自分の場合あまりないんだけど、とりあえず「エラーになって使えない」のと「使えるけど遅い」では大きな違いなので、一応メモ。