javascript - Elasticsearch 和 Firebase : Result limit change and weird query results

标签 javascript android google-app-engine elasticsearch firebase

我已经设置了一个 Elasticsearch 即时,创建了一个 Firebase 项目并在我的本地主机上运行手电筒。当我在默认路径(搜索/请求)中查询 Firebase 数据库时,我在 Firebase 上的数据库实例的搜索/响应路径中创建了 10 个结果。

可以请对此更有经验的人解释一下吗:

  1. 如何在 Firebase 上将结果限制更改为超过 10 个结果? (我尝试使用底部的代码修改 SearchQueue.js,但没能成功。

  2. 为什么执行查询时的搜索结果未指定索引和类型 返回弹性服务器上的条目总数,因此在 Firebase 上返回不相关的结果?

我在 firebase 上使用 postman 进行 ReST 调用 (PUT),并将 JSON 内容发送到/search/request/

此 json 内容在结果方面有效:

{ "index": "chatmessages", "type": "chat", "query": "georgebest"} 

但是这个没有:

{"query": "georgebest"}

两者都返回了 Status: 200 OK

让我补充一点,使用 Sense 并运行相同的查询,结果是完全正确的。使用手电筒时会出现此问题。

请注意,我没有使用任何规则,并且出于测试目的,我将 Firebase 数据库保持打开状态。 如果需要任何其他信息,请告诉我。谢谢。

1 的代码 fragment ):

SearchQueue.prototype = {
_process: function(snap) {
 var dat = snap.val();
 var key = snap.key;

 if (this._assertValidSearch(key, dat)) {
  // Perform (a very simple) ElasticSearch query
   var searchProps = {
     index: dat.index,
     type: dat.type,
     //added variables
     size : dat.size,
     from : dat.from
           };

最佳答案

看起来您遇到了错误 fixed in the 0.2.0 release .

请注意,在最新版本中,query 已被替换为 qbody 以与 ES 内联。 (query 现在仍然有效)

文档中现在包含一个更有用的示例 here .

 {
   "from" : 0, 
   "size" : 50, 
   "body": {
     "query": {
        "match": {
           "_all": "foo"
        }
     }
   }
 }

对 sql lite 格式使用 q 也可以:

{
   "from" : 0, 
   "size" : 50, 
   "q": "foo"
}

关于javascript - Elasticsearch 和 Firebase : Result limit change and weird query results,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40918041/

相关文章:

javascript - 使用 '.animate()' 函数的功能问题

javascript - 验证整个字符串并获取所有匹配项

javascript - 动态添加事件监听器

javascript - VueJs - 双向绑定(bind)父子数据

java - 构建失败 : org. codehaus.groovy.control.MultipleCompilationErrorsException

android - android中的下拉菜单

android - 如何在 Android 上的 TabLayout 中以编程方式创建选项卡

java - 如何根据数据交换小部件元素

google-app-engine - Cloud Shell 上的 dev_appserver 上的 Google Cloud 存储

google-app-engine - Google App Engine 的 Blobstore 适用于 30 秒请求超时吗?