このチュートリアルに従って、elasticsearch をアプリに追加しました。
私はWindows 8システムで作業しており、elasticsearchがインストールされています。しかし、アプリで何かを検索しようとすると、何も見つかりません。
チュートリアルでは、Rails コンソールを使用して検索が機能しているかどうかを確認できると述べています。
searchkick gem をインストールして bundle install を実行しました。
Ticket クラスに searchkick を追加しました。
class Ticket < ActiveRecord::Base
searchkick
# ...
end
Ticket クラスをインデックスに追加しました
rake searchkick:reindex CLASS=Book
Railsコンソールで何かを検索しようとすると、何も見つかりません。
irb(main):001:0> results = Ticket.search("computer")
Ticket Search (103.0ms)
curl http://lvh.me:9200/tickets_development/_search?pretty -d '{
"query": {
"dis_max": {
"queries": [
{
"match": {
"_all": {
"query": "computer",
"operator": "and",
"boost": 10,
"analyzer": "searchkick_search"
}
}
},
{
"match": {
"_all": {
"query": "computer",
"operator": "and",
"boost": 10,
"analyzer": "searchkick_search2"
}
}
},
{
"match": {
"_all": {
"query": "computer",
"operator": "and",
"boost": 1,
"fuzziness": 1,
"max_expansions": 3,
"analyzer": "searchkick_search"
}
}
},
{
"match": {
"_all": {
"query": "computer",
"operator": "and",
"boost": 1,
"fuzziness": 1,
"max_expansions": 3,
"analyzer": "searchkick_search2"
}
}
}
]
}
},
"size": 100000,
"from": 0,
"fields": []
}'
=> #<Searchkick::Results:0x6ec5de8 ,
@klass=Ticket(
id: integer,
name: string,
client: string,
archived: boolean,
created_at: datetime,
updated_at: datetime
)
@response={
"took"=> 90,
"timed_out"=> false,
"_shards"=> {
"total"=> 5,
"successful"=> 5,
"failed"=> 0
},
"hits"=> {
"total"=> 0,
"max_score"=> nil,
"hits"=> []
}
},
@options={
:page=>1,
:per_page=>100000,
:padding=>0,
:load=>true,
:includes=>nil,
:json=>false
} > irb(main):002:0> results.map(&:name) => []