- mongodb - 在 MongoDB mapreduce 中,如何展平值对象?
- javascript - 对象传播与 Object.assign
- html - 输入类型 ="submit"Vs 按钮标签它们可以互换吗?
- sql - 使用 MongoDB 而不是 MS SQL Server 的优缺点
我正在尝试将 ElasticSearch 与 Firebase 集成。我正在使用 Flashlight integration从 Firebase 进行设置。我已按照上面链接的 Github 存储库中的描述将代码部署到 Heroku。
从某种意义上说,当我将查询对象插入 /search/request/
时,我会得到 /search/response
结果。但是结果有点乱,不正确。但我不知道出了什么问题。
这是在 config.js
中定义的,我在其中定义了要监控的路径:
/** Paths to Monitor
*
* Each path can have these keys:
* {string} path: [required] the Firebase path to be monitored, for example, `users/profiles`
* would monitor https://<instance>.firebaseio.com/users/profiles
* {string} index: [required] the name of the ES index to write data into
* {string} type: [required] name of the ES object type this document will be stored as
* {Array} fields: list of fields to be monitored and indexed (defaults to all fields, ignored if "parser" is specified)
* {Array} omit: list of fields that should not be indexed in ES (ignored if "parser" is specified)
* {Function} filter: if provided, only records that return true are indexed
* {Function} parser: if provided, the results of this function are passed to ES, rather than the raw data (fields is ignored if this is used)
*
* To store your paths dynamically, rather than specifying them all here, you can store them in Firebase.
* Format each path object with the same keys described above, and store the array of paths at whatever
* location you specified in the FB_PATHS variable. Be sure to restrict that data in your Security Rules.
****************************************************/
exports.paths = [{
path: "users",
index: "firebase",
type: "user"
}, {
path: "messages",
index: "firebase",
type: "message",
fields: ['msg', 'name'],
filter: function(data) {
return data.name !== 'system';
}
}];
这是 Firebase 中用户 Node 的结构(位于根目录)。
"users" : {
"userid123" : {
"friends" : {
"userid42" : 1
},
"recs" : {
"-recid1234" : 0
},
"user_info" : {
"createdAt" : 1475157596,
"email" : "e@male.org",
"name" : "Firstname Lastname Johnson",
"profilePicture" : "png.jpg",
"pushId" : {
},
"username" : "userLooser"
}
},
"userid42" : {
"friends" : {
"userid123" : 1,
"test1" : 1
},
"recs" : {
"-recid5678" : 0
},
"user_info" : {
"email" : "email@icloud.com",
"name" : "Firstname Lastname",
"phoneNumber" : "",
"profilePicture" : "jpg.png",
"pushId" : {
},
"username" : "userName"
}
}
}
}
我想要实现的是搜索用户名,并返回排名靠前的结果。我真正需要的只是用户名和用户 ID。
但是当我使用上图中的对象进行查询时,我得到了下面的响应:
"search" : {
"response" : {
"index" : {
".priority" : 1.477326417519E12,
"hits" : [ {
"_id" : "test1",
"_index" : "firebase",
"_score" : 1,
"_source" : {
"friends" : {
"test1" : 1
},
"recs" : {
},
"user_info" : {
"createdAt" : 1475157596,
"name" : "Testbruker 1",
"username" : "testuzer"
}
},
"_type" : "user"
}, {
"_id" : "userid123",
"_index" : "firebase",
"_score" : 1,
"_source" : {
"friends" : {
},
"recs" : {
},
"user_info" : {
"email" : "",
"name" : "Firstname Lastname",
"phoneNumber" : "",
"profilePicture" : "",
"pushId" : {
},
"username" : "profileName"
}
},
"_type" : "user"
}, {
"_id" : "userid42",
"_index" : "firebase",
"_score" : 1,
"_source" : {
"friends" : {
},
"recs" : {
},
"user_info" : {
"createdAt" : 1475157596,
"email" : "e@male.org",
"name" : "Firstname Lastname Johnson",
"profilePicture" : "",
"pushId" : {
},
"username" : "userLooser"
}
},
"_type" : "user"
} ],
"max_score" : 1,
"total" : 3
},
"query" : {
".priority" : 1.477326417484E12,
"hits" : [ {
"_id" : "test1",
"_index" : "firebase",
"_score" : 1,
"_source" : {
"friends" : {
"test1" : 1
},
"recs" : {
},
"user_info" : {
"createdAt" : 1475157596,
"name" : "Testbruker 1",
"username" : "testuzer"
}
},
"_type" : "user"
}, {
"_id" : "userid42",
"_index" : "firebase",
"_score" : 1,
"_source" : {
"friends" : {
},
"recs" : {
},
"user_info" : {
"email" : "",
"name" : "Firstname Lastname",
"phoneNumber" : "",
"profilePicture" : "",
"pushId" : {
},
"username" : "profileName"
}
},
"_type" : "user"
}, {
"_id" : "userid123",
"_index" : "firebase",
"_score" : 1,
"_source" : {
"friends" : {
},
"recs" : {
},
"user_info" : {
"createdAt" : 1475157596,
"email" : "e@male.org",
"name" : "Firstname Lastname Johnson",
"profilePicture" : "",
"pushId" : {
},
"username" : "userLooser"
}
},
"_type" : "user"
} ],
"max_score" : 1,
"total" : 3
},
"type" : {
".priority" : 1.477326417503E12,
"hits" : [ {
"_id" : "test1",
"_index" : "firebase",
"_score" : 1,
"_source" : {
"friends" : {
"test1" : 1
},
"recs" : {
},
"user_info" : {
"createdAt" : 1475157596,
"name" : "Testbruker 1",
"username" : "testuzer"
}
},
"_type" : "user"
}, {
"_id" : "userid42",
// Same content as above
}, {
"_id" : "userid123",
// Same content as above
} ],
"max_score" : 1,
"total" : 3
}
}
}
其中:
/response
下有三个 Node query
、type
和 index
都包含很多命中。 那么,有谁知道怎么回事?如何创建查询或制作路径监视器以使搜索正常工作?也许得到一个更简单的回应?
最佳答案
Flashlight 实际上在 search/requests/$key 中查找请求,其中应该包含一个包含字段类型、索引、查询的文档。它会在 search/response/$key 处对结果做出响应。如果您想通过手动添加 key 进行测试,请尝试将请求放在另一个 Node 下,例如搜索/请求/testkey123。
关于json - 无法使用 Firebase 和 ElasticSearch(使用 Flashlight)进行正确的路径监控或查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40223633/
我正在尝试为Firebase设置Flashlight example(首先在本地),但被卡住了。我设法将搜索推到Firebase: 但是我没有收到响应到Firebase 中。我的app.js日志说 C
我正在编写一个简单的 2D 迷宫游戏,您可以在其中穿过许多房间。我想通过限制玩家的视野来让它变得有点挑战。起初我想将框架内的默认鼠标图标替换为半透明的 PNG 椭圆,但后来我意识到我需要遮挡它周围的东
我目前正在尝试使用 Firebase、Flashlight 和 Swift 创建一个搜索函数,以从实时数据库中检索随机对象。 我正在尝试在/search/request 处对 Firebase 执行以
我正在尝试开发一个手电筒应用程序作为我的第一个“真正的”应用程序,并且几乎一切正常。但每次我想关闭手电筒时,我的应用程序就会崩溃。代码和Logcat日志如下: package com.leuchtst
我正在尝试集成Firebase Flashlight在我的 Node.js 应用程序中使用 ElasticSearch,以便对我的 Firebase 集合进行搜索操作。我想在 api.js 中定义我的
Camera cam = Camera.open(); Parameters p = cam.getParameters(); p.setFlashMode(Parameters.FLASH_
我正在使用Flashlight Firebase插件 我正在使用这个example并且工作正常 在示例中,您可以看到 example.js 文件具有如下查询方法 // display search
我对 HTML 和 JavaScript 还很陌生,所以请多多关照。我需要创建一个“手电筒”,在点击时从黑色变为白色,反之亦然。我可以到达我可以点击屏幕的位置,它会切换为白色,但我怎样才能将它切换回黑
我正在尝试将 ElasticSearch 与 Firebase 集成。我正在使用 Flashlight integration从 Firebase 进行设置。我已按照上面链接的 Github 存储库中
我有一个问题,我不知道如何从 Unity 访问我的 java 插件。 这是 Java 代码: package fr.vincentmazet.utilslibrary; import android.
我在 Android Studio 中使用 CameraSource 制作了 Camera Preview new CameraSource.Builder(this , detector).setA
感谢手电筒的教程https://github.com/firebase/flashlight , 这在某种程度上很容易用 Firebase 进行全文搜索。 但是,如果您保留免费的 ES 实例,它会在并
伟大的开发者。我正在使用 io.pristine.libjingle:11139 的 webRTC 库进行视频通话。一切顺利,现在我只想打开手电筒,我研究了几乎所有与手电筒相关的问题,在那里我发现手电
我是一名优秀的程序员,十分优秀!