質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Ruby on Rails 5

Ruby on Rails 5は、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

Elasticsearch

Elasticsearchは、クラウド向けに構築された、RESTful な API を提供する分散型のサーチエンジンアプリケーションです。

Ruby

Rubyはプログラミング言語のひとつで、オープンソース、オブジェクト指向のプログラミング開発に対応しています。

Ruby on Rails

Ruby on Railsは、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

Q&A

解決済

2回答

2227閲覧

elasticsearch-railsで、カラムにないメソッドの値をindexにする

namenamenameko

総合スコア234

Ruby on Rails 5

Ruby on Rails 5は、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

Elasticsearch

Elasticsearchは、クラウド向けに構築された、RESTful な API を提供する分散型のサーチエンジンアプリケーションです。

Ruby

Rubyはプログラミング言語のひとつで、オープンソース、オブジェクト指向のプログラミング開発に対応しています。

Ruby on Rails

Ruby on Railsは、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

0グッド

0クリップ

投稿2018/03/18 09:05

編集2018/03/19 03:02

https://github.com/elastic/elasticsearch-rails/tree/master/elasticsearch-model

やりたいこと:

こちらのgemを使って、あるモデルをelasticsearchで検索できるようにしています。
あくまで例なのですが、Userというモデルがあって
id, first_name, last_nameというカラムを持っていたとします。
ここで、カラムにない

class User ... def full_name first_name + last_name end ... end

というfull_nameもindexに加えて検索したいと思います。

試したこと:

module UserSearchable extend ActiveSupport::Concern included do include Searchable settings index: { ... } mappings do indexes :id, type: :integer indexes :first_name, type: text indexes :last_name, type: text indexes :full_name, type: text, as: 'full_name' end def as_indexed_json(options={}) as_json( methods: [:full_name] ) end end end

https://stackoverflow.com/questions/13600086/index-the-results-of-a-method-in-elasticsearch-tire-activerecord
こちらなどを参考にして見ましたが、いまいちうまく行きません。
現象としては、kibanaで見たときに full_name がそもそもindexに含まれていないです。

elasticsearchが初心者なので色々と理解していない部分もあるのですが、
一般的にどのようにすれば良いのか教えて頂きたいです。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

callbackなどは大丈夫そうですか

投稿2019/10/30 10:46

superbiginner

総合スコア14

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

自己解決

すみません、自己解決しました。
, as: 'full_name' を除いた上でインデックスを作成し直せばいけました!

投稿2018/03/19 05:19

namenamenameko

総合スコア234

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問