我试图建立一个查询,首先让我得到一个跟随用户的追随者列表,其次它应该采取该列表,然后检查他们是否在线。Elasticsearch通过RESTful API进行查询设计
我有两个“索引”或端点/通道和/以下。
通道端点JSON对象看起来像这样(缩写份)
{ channel: {"username":"username1", ... , "online":"true" } }
以下端点对象看起来有点像这样
{ following : {"username1":{"username2":"username2", "username3":"username3"} }
如果用完一个简单的查询/以下/ _search我找回像...
{
"_index": "following",
"_type": "following",
"_id": "_Liso_",
"_score": 1,
"_source": {
"Gabe": "Gabe",
"Gavin": "Gavin"
}
}
这个结果意味着加文是关注加贝。
我相信问题是我如何存储数据。
在火力点我的数据是这样的
following
|---Gabe
|----Gavin:Gavin
所以以下对象{用户名}的键/值儿童的每个子对象:{用户名}
现在我可以运行查询单独地获得满意的结果我需要。例如,如果我询问ElasticSearch(ES)如果频道“Gavin”是“在线”,我会根据它们是否在线获取一个结果。和以下相同。然而,我似乎无法让查询先查看谁在跟踪Gavin,然后查看他们是否在线并返回在线用户。
@marcinn实际上有一些东西类似于REST风格的东西,例如https://www.elastic.co/guide/en/elasticsearch/reference/1.4/search.html 它使用curl -GET请求。如果我没有记错的关键词“GET”是REST风格的 REST风格的定义使用的措辞,如GET,POST,PUT等 https://en.wikipedia.org/wiki/Representational_state_transfer 所以实际上它类似于RESTful。 – user1171911
@marcinn此外,它使用其他RESTful语言,例如PUT,在这个例子中你可以更新你的数据。再次,非常类似于RESTful https://www.elastic.co/guide/en/elasticsearch/reference/1.4/_modifying_your_data.html – user1171911