ActsAsSearchableでHyperEstraierのIndex追加時に独自キーワードをセットする方法
acts_as_searchableを使うと、検索対象のモデルを新規作成した時に、after_saveフィルタでインデックスにデータが追加されます。
このときにHyperEstraier組込以外のツールでキーワードを設定したかったので、ActsAsSearchableExtendedというライブラリを書いてみました。
以下のソースをRAILS_ROOT/lib/に配置します。
-
module EstraierPure
-
class Document
-
def original_keywords
-
text_of_searchable_fields = texts.join(" ")
-
# DO SOMETHING
-
#
-
# Ex.)
-
# keyword["ブログ"] = 1
-
# keyword["rails"] = 3
-
# keyword["ruby"] = 5
-
# :
-
end
-
def dump_draft_with_termiology
-
@kwords = self.my_keywords
-
dump_draft_without_termiology
-
end
-
alias_method_chain :dump_draft, :termiology
-
end
-
end
original_keywordsメソッドで独自キーワードを生成してやれば、そこで生成されたキーワードがそのデータに対応するHyperEstraierのドキュメントにセットされ、インデックスされます。
※キーワードはHashオブジェクトである必要があります。
キーワードHashでは、keyが単語でvalueが重み。











