Sunspotのfulltext対象のフィールドを探す
Ruby/RailsからSolrを使うためのSunspot。全文検索をするには次のようにする。
Post.search { fulltext 'ruby' }
すると、Postのクラス定義中のsearchable
ブロックの内容に従って、適切なフィールドを対象にqueryを構築してくれる。
その対象となるフィールドというのはクラス定義から明らかなのだが、コード中から参照するにはどうしたらよいのかなと。少しコードを読んでみたところ、こんな感じで得られるようだ。
Sunspot::Setup.for(Post).all_text_fields.map(&:indexed_name)
実はこれを調べるとき、Post側→Sunspot側へと深く潜っていくように進めた。だが、行きついた先を見るとSolrのqueryのパラメータ名が並んでいて、ああ、そっちからいったほうが早かったかもなと思ったのだった。