小编Tro*_*roy的帖子

Elasticsearch中的嵌套文档

我正在写一个资产管理应用程序.它允许用户通过向资产添加html控件(如文本字段,选择菜单等)来存储任意资产属性.然后,该属性的JSON表示将成为存储在couchdb中的资产JSON文档的一部分.资产在couchdb中具有以下结构:

{
   "_id": "9399fb27448b1e5dfdca0181620418d4",
   "_rev": "12-fa50eae8b50f745f9852e9fab30ef5d9",
   "type": "asset",
   "attributes": [
       {
           "id": "9399fb27448b1e5dfdca01816203d609",
           "type": "text",
           "heading": "Brand",
           "data": "",
           "requiredBySystem": true
       },
       {
           "id": "9399fb27448b1e5dfdca01816203e68e",
           "type": "userSelectMenu",
           "heading": "Assigned To",
           "data": "",
           "requiredBySystem": true
       },
       {
           "id": "9399fb27448b1e5dfdca01816203e9c9",
           "type": "categories",
           "heading": "Categories",
           "data": [
               "0d7e6233e5f48b4f55c5376bf00b1be5",
               "0d7e6233e5f48b4f55c5376bf00d94cf"
           ],
           "requiredBySystem": true
       },
       {
           "id": "9399fb27448b1e5dfdca01816207uy5a",
           "type": "radio",
           "heading": "Radio Buttons",
           "data": [
               {
                   "text": "Button 1",
                   "checked": false
               },
               {
                   "text": "Button 2",
                   "checked": true
               }
           ],
           "requiredBySystem": true
       },
       {
           "id": …
Run Code Online (Sandbox Code Playgroud)

elasticsearch

23
推荐指数
1
解决办法
1万
查看次数

如何处理Elasticsearch索引延迟

这是我的情景:

我有一个包含用户列表的页面.我通过我的Web界面创建一个新用户并将其保存到服务器.服务器在elasticsearch中索引文档并成功返回.然后我被重定向到不包含新用户的列表页面,因为文档可能需要1秒才能在elasticsearch中搜索

在elasticsearch中近实时搜索.

elasticsearch指南表示您可以手动刷新索引,但表示不会在生产中执行此操作.

...每次在生产中索引文档时都不要手动刷新; 这会伤害你的表现.相反,您的应用程序需要了解Elasticsearch的近实时性并为其做好准备.

我想知道其他人是如何解决这个问题的?我希望有一个事件或我可以听的东西会告诉我什么时候该文件可用于搜索,但似乎没有这样的东西.简单地等待1秒似乎是合理的,但这似乎是一个坏主意,因为它可能花费的时间比这少得多.

谢谢!

elasticsearch

17
推荐指数
2
解决办法
9503
查看次数

couchdb视图,用于在数组字段中搜索作为键数组传入的值

我在couchdb中有一些文件,其中包含不同关联文档的id数组字段:

{
  associatedAssets: ["4c67f6241f4a0efb7dc2abc24a004dfe",  "270fd4508a1222a1e2a27cbe7f002d9z"]
}
Run Code Online (Sandbox Code Playgroud)

我想写一个视图,让我传入一个本身就是一个id数组的键,然后返回其associatedAssets字段包含一个或多个通过键数组传入的id的文档,例如

$.ajax({
  url: "/db/_design/design_doc/_view/summaryByAssociatedAssets",
  type: "post",
  data: JSON.stringify({keys: ["4c67f6241f4a0efb7dc2abc24a004dfe", "6c67f6241f4a0efb7dc2abc24a004dfd"]}),
  dataType: "json",
    contentType: "application/json",
})
.done(function(resp){
  console.log(resp[0]);
});
Run Code Online (Sandbox Code Playgroud)

将返回其associatedAssets数组包含一个或多个键"4c67f6241f4a0efb7dc2abc24a004dfe","6c67f6241f4a0efb7dc2abc24a004dfd"的文档.

我无法在我的视图中访问密钥,所以我不确定我是否可以这样做?有没有更好的方法来实现这一目标?

谢谢!

couchdb views

6
推荐指数
1
解决办法
5078
查看次数

Elasticsearch日期字段中的空字符串?

我在我的映射中设置了日期字段,如下所示:

"groupsAssignedDate" : {
    "type" : "date",
    "format" : "MM-dd-YYYY"
}
Run Code Online (Sandbox Code Playgroud)

在我的应用程序中,字段groupsAssignedDate最初设置为空字符串.分配组时,将生成unix时间戳并将其存储在字段中.我正在尝试使用elasticsearch的批量更新功能来引入一组groupAssignedDate为""的文档,因为尚未分配任何组.但Elasticsearch不会为文档编制索引.这是在日志文件中:

Failed to parse [groupsAssignedDate]
...
failed to parse date field [], tried both date format [MM-dd-YYYY], and timestamp number
Run Code Online (Sandbox Code Playgroud)

看来elasticsearch支持JSON null值...我是否需要将我的文档从使用""切换为null或者是否有某种方式我可以支持使用空字符串代替?

elasticsearch

6
推荐指数
1
解决办法
1万
查看次数

通过api更改couchdb 1.2中的密码?

有谁知道我是否可以在couchdb 1.2中更改密码?要创建一个用户,我有一个获取用户信息的表单,然后像这样发布到_users数据库(下面的url中的'users'代理):

// Create a user
var userObj = {
     _id: "org.couchdb.user:test",
     type: "user",
     name: "test",
     roles: ["user"],
     emailAddress: "test@testy.com",
     firstName: "Test",
     lastName: "Test",
     password: "password"
};
$.ajax({
    url: "/users/org.couchdb.user:test",
    type: "PUT",
    dataType: "json",
    contentType:"application/json",
    data: JSON.stringify(userObj)
});
Run Code Online (Sandbox Code Playgroud)

Couchdb 1.2为我生成密码哈希和盐并存储用户.它很棒.要更新密码,我尝试检索用户,删除password_sha和salt字段,添加密码字段,然后重新发布文档.我希望Couch能为我重新计算password_sha和salt字段并更新文档,但事实并非如此.password_sha和salt字段未更新.

// Update a user
$.get("/users/org.couchdb.user:test")
.done(function(userDoc){
  delete userDoc.password_sha;
  delete userDoc.salt
  userDoc.password = "test";
  $.ajax({
    url: "/users/org.couchdb.user:test",
    type: "PUT",
    dataType: "json",
    contentType:"application/json",
    data: userDoc
  });
});
Run Code Online (Sandbox Code Playgroud)

我怀疑沙发只会在创建文档时生成password_sha和salt字段.如果是这种情况,我应该生成自己的password_sha和salt字段并将其发布到更新的doc中吗?我在这里错过了什么吗?

谢谢!

couchdb

5
推荐指数
1
解决办法
855
查看次数

对ElasticSearch中的字符串数组进行排序

我正在使用以下内容对Elasticsearch中具有"usernamesAssigned"属性的文档进行排序.usernamesAssigned是一个字符串数组:

"sort": [
    {
        "_script": {
            "script": "doc["usernamesAssigned"].values.sort().join()",
            "type": "string",
            "lang": "js",
            "order": "asc"
        }
    }
]
Run Code Online (Sandbox Code Playgroud)

我想知道在不使用基于脚本的排序的情况下是否有更有效的方法来做到这一点?

elasticsearch

5
推荐指数
1
解决办法
2258
查看次数

在kubernetes statefulset中对Elasticsearch数据目录进行chown时权限被拒绝

希望有人可以帮助我解决似乎是权限错误的问题。我正在尝试使用官方的Elasticsearch Docker镜像启动一个3节点的Elasticsearch集群。启动容器时,我在/ usr / share / elasticsearch / data / nodes上从Elasticsearch收到“拒绝访问”错误,因此我尝试添加命令以使Elasticsearch成为/ usr / share / elasticsearch / data的所有者。但是当我包含chown命令时,我得到了这些错误:

chown: cannot read directory '/usr/share/elasticsearch/data/lost+found': Permission denied
chown: changing ownership of '/usr/share/elasticsearch/data': Operation not permitted
Run Code Online (Sandbox Code Playgroud)

这是我的statefulset yaml文件:

apiVersion: apps/v1beta1
kind: StatefulSet
metadata:
  name: esnode
spec:
  serviceName: elasticsearch-transport
  replicas: 3
  template:
    metadata:
      labels:
        app: evo-pro-cluster
    spec:
      initContainers:
      - name: init-sysctl
        image: busybox
        imagePullPolicy: IfNotPresent
        command: ["sysctl", "-w", "vm.max_map_count=262144"]
        securityContext:
          privileged: true
      containers:
      - name: elasticsearch
        securityContext:
          privileged: true
          capabilities:
            add:
            - IPC_LOCK
            - …
Run Code Online (Sandbox Code Playgroud)

elasticsearch docker kubernetes

2
推荐指数
1
解决办法
2262
查看次数

标签 统计

elasticsearch ×5

couchdb ×2

docker ×1

kubernetes ×1

views ×1