Elasticsearchって聞くんだけど、なんだろう??
と思ってたわけです。とりあえず動かしてみるとか、勉強会行ってみるとかしたんだけど、どーにも分からん。そのうち、どーやらJSONというものが関係してるらしいと知って、JSONについて調べてみたら・・・・・あ、あっさり理解できた。
ちうわけで、簡単にまとめてみる。
まずは、よく見かける説明を
Elasticsearchはオブジェクト指向型データベースで、検索に特化したものであある
ポイントは、オブジェクト指向型データベースってところなんですね。で、データベースじゃなくて、オブジェクト指向型のドキュメントというのがあって、XMLとかJSONとかymlとかがあるわけですね。
つまり、オブジェクト型ドキュメントがわかれば、そのオブジェクト指向型ドキュメントを溜め込んでくれるデータベースがオブジェクト指向型データベースとなる。
オブジェクト指向型ドキュメント、というか、JSONって?そこまで分かればググろうや。 じゃなくて、まぁそれが肝なんですが、よーするに箇条書き文章と思えば良いわけですね。ただし、見出し付き箇条書き。
- バイナリィポット:処女作。喫茶店と仮想現実空間が舞台。なっちゃんかわいい
- プリンセスホリデー:第二作。ファンタジー世界が舞台。シルフィーかわいい 月は東に日は西に:第三作。学園もの。ちひろちゃん最高
- 夜明け前より瑠璃色な:第四作。学園もの。麻衣ちゃんかわいい
- FORTUNE ARTERIAL:第五作。学園もの。白ちゃんかわいい
- 穢翼のユースティア:第六作。ファンタジー世界。リシアかわいい
- 大図書館の羊飼い:第七作。学園もの。佳奈すけー
- 千の波濤、桃花染の皇姫:第八作。和風ファンタジー。古杜音もふー
とまぁ、こんな箇条書きはよくあるのではないかと。 この箇条書き文章をJSONで表記するとこうなる。
[{
"タイトル" : "バイナリィポット" ,
"舞台" : "喫茶店と仮想現実" ,
"お気に入り" : "諏訪 奈津子"
} , {
"タイトル" : "プリンセスホリデー" ,
"舞台" : "ファンタジー世界" ,
"お気に入り" : "シルフィー・クラウド"
} , {
"タイトル" : "月は東に日は西に" ,
"舞台" : "学園" ,
"お気に入り" : "橘 ちひろ"
} , {
"タイトル" : "夜明け前より瑠璃色な" ,
"舞台" : "学園" ,
"お気に入り" : "朝霧 麻衣"
} , {
"タイトル" : "FORTUNE ARTERIAL" ,
"舞台" : "学園" ,
"お気に入り" : "東儀 白"
} , {
"タイトル" : "穢翼のユースティア" ,
"舞台" : "ファンタジー世界" ,
"お気に入り" : "リシア・ド・ノーヴァス・ユーリィ"
} , {
"タイトル" : "大図書館の羊飼い" ,
"舞台" : "学園" ,
"お気に入り" : "鈴木 佳奈"
} , {
"タイトル" : "千の波涛 桃花染の皇姫" ,
"舞台" : "和風ファンタジー世界" ,
"お気に入り" : "椎葉 古杜音"
}]
構造化されたテキストはこういう風に、文章を意味で区切ってその意味ごとにテキストを入れるということ。
で、Elasticsearch にデータを入れるときは、「 {"タイトル" : "月は東に日は西に" , "舞台" : "学園" , "お気に入り" : "橘 ちひろ"} 」 を1件のデータとして登録するわけです。7件のデータを登録できるわけですね。
そしてそして、検索に特化したものが Elasticsearch なんですから、検索しなければ意味がありません。「 {"舞台" , "ファンタジー"} 」として Query を発行しましょう。すると、プリホリ、ユースティア、千桃の3本が検索結果として帰ってくるのです。ポイントは、千桃も結果として帰ってくること。データは「和風ファンタジー」となっていても、部分マッチで「ファンタジー」で検索されてくるわけです。
ちうわけで、Elasticserach とか、MongoDB とかを知りたければ、JOSNを知れ(XMLでもいい)
コメントする