小编i_l*_*ots的帖子

如何获得具有多个字段的Elasticsearch聚合

我正在尝试找到当前正在查看的标签的相关标签.索引中的每个文档都被标记.每个标签由两部分组成 - ID和文本名称:

{
    ...
    meta: {
        ...
        tags: [
            {
                id: 123,
                name: 'Biscuits'
            },
            {
                id: 456,
                name: 'Cakes'
            },
            {
                id: 789,
                name: 'Breads'
            }
        ]
    }
}
Run Code Online (Sandbox Code Playgroud)

要获取相关标记,我只是查询文档并获取其标记的聚合:

{
    "query": {
        "bool": {
            "must": [
                {
                    "match": {
                        "item.meta.tags.id": "123"
                    }
                },
                {
                    ...
                }
            ]
        }
    },
    "aggs": {
        "baked_goods": {
            "terms": {
                "field": "item.meta.tags.id",
                "min_doc_count": 2
            }
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

这很完美,我得到了我想要的结果.但是,我要求标签ID 名称都做有用的事情.我已经探索了如何实现这一点,解决方案似乎是:

  1. 索引时组合字段
  2. 将字段组合在一起的脚本
  3. 嵌套聚合

第一选项和第二选项对我来说是不可用的,所以我一直在使用3,但它没有以预期的方式响应.鉴于以下查询(仍在搜索也标有'Biscuits'的文档):

{
    ...
    "aggs": {
        "baked_goods": {
            "terms": …
Run Code Online (Sandbox Code Playgroud)

aggregate faceted-search elasticsearch

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

Ansible playbook从用户shell执行命令

我正在尝试运行一个相对简单的Ansible playbook来通过Vagrant配置Ubuntu VM.大致它遵循3个步骤:

  1. 更新并安装基本软件包
  2. 将rbenv安装到指定用户的主目录
  3. 通过rbenv为指定用户安装指定的Ruby版本

前两个步骤很好,但第三个我正在努力.使用其他剧本作为参考(一个用于rbenvnvm)我创建了以下基本剧本:

---
- hosts: all
  vars:
    user: joe_bloggs
    ruby_version: 2.1.5

  tasks:

    #
    # System
    #

    - name: Update apt cache
      sudo: yes
      apt: update_cache=yes cache_valid_time=86400

    - name: Upgrade existing system packages
      sudo: yes
      apt: upgrade=dist

    - name: Install essential system packages
      sudo: yes
      apt: name={{ item }} state=latest
      with_items:
        - git
        - curl
        - openssl
        - build-essential

    - name: Add user
      sudo: yes
      user: name={{user}} shell=/bin/bash groups=sudo

    #
    # rbenv …
Run Code Online (Sandbox Code Playgroud)

ubuntu vagrant ansible ansible-playbook ubuntu-14.04

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

IE10中的CSS关键帧动画跳跃

我创建了一个简单的循环动画,它使用该translate函数左右移动元素.这在Chrome,Firefox和IE10中很好地运行,但是当动画反转元素跳转时.

我在CodePen上创建了一个问题的例子,只需在IE10中打开它:http://codepen.io/anon/full/cxtza (更新)

我试图通过硬编码关键帧0%,50%和100%而不是from/to使用alternate方向属性来缓解问题,我尝试使用translateX而不是3D,但到目前为止还没有运气.

更新:已报告该错误https://connect.microsoft.com/IE/feedback/details/785881/animated-transform-with-translate-and-percentage-value-jumps-ie10

css3 keyframe css-transforms css-animations internet-explorer-10

4
推荐指数
1
解决办法
3323
查看次数

为什么在嵌套循环中重用迭代器变量不会导致ColdFusion中出现问题?

我一直在寻找一些旧的代码,我发现了几个嵌套循环实例,其中用于迭代对象的变量在内部循环中重新分配,但它不会导致问题.例如,给出以下内容example.cfm:

<cfscript>

    // Get every second value in an array of arrays
    function contrivedExampleFunction(required array data) {
        var filtered = [];

        for (i = 1; i lte arrayLen(arguments.data); i++) {
            var inner = arguments.data[i];

            for (i = 1; i lte arrayLen(inner); i++) {
                if (i eq 2) {
                    arrayAppend(filtered, inner);
                }
            }
        }

        return filtered;
    }

    data = [
        [1,2,3],
        [4,5,6],
        [7,8,9]
    ];

    // Expected (working function): [2, 5, 8]
    // Expected (short-circuiting): [2]
    // Actual result: [1, …
Run Code Online (Sandbox Code Playgroud)

coldfusion cfc cfml

0
推荐指数
1
解决办法
183
查看次数