esq, elasticsearch的简单查询生成器

分享于 

3分钟阅读

GitHub

  繁體 雙語
Simple query builder for elasticsearch
  • 源代码名称:esq
  • 源代码网址:http://www.github.com/holidayextras/esq
  • esq源代码文档
  • esq源代码下载
  • Git URL:
    git://www.github.com/holidayextras/esq.git
    Git Clone代码到本地:
    git clone http://www.github.com/holidayextras/esq
    Subversion代码到本地:
    $ svn co --depth empty http://www.github.com/holidayextras/esq
    Checked out revision 1.
    $ cd repo
    $ svn up trunk
    
    ESQ ( Elasticsearch查询)

    Build Status

    我需要一种简单的方法来构建elasticsearch查询,而不必仅仅为查询结构编写大量和大量代码。 出于这个原因,我创建了一个非常简单但强大的工具,它将为你完成所有的对象创建。

    下载

    npm install esq 或者 bower intall esq

    快速示例

    示例

    varESQ=require('esq');var esq =newESQ();esq.query('bool', ['must'], { match: { user:'kimchy' } });esq.query('bool', 'minimum_should_match', 1);var query =esq.getQuery();

    生成

    {
     "bool": {
     "must": [
     {
     "match": {
     "user": "kimchy" }
     }
     ],
     "minimum_should_match": 1 }
    }

    浏览器中的

    <scriptsrc="esq.js"></script>
    <script>var esq =newESQ();esq.query('bool', ['must'], { match: { user:'kimchy' } });var query =esq.getQuery();</script>

    文档

    esq.getQuery() ;

    这将在当前阶段返回查询。

    示例

    esq.query('bool', ['must'], { match: { foo:'bar' } });var query =esq.getQuery();

    生成

    {
     "bool": {
     "must": [
     {
     "match": {
     "foo": "bar" }
     }
     ]
     }
    }

    查询( str ,value )。

    你可以将这个函数传递给任意数量的字符串,并且你将收到一个带有参数的嵌套对象。 最后一个参数应该始终是要分配给第二个参数的对象。 这里函数将始终在它的当前状态返回查询。

    示例

    esq.query('filtered', 'query', { match: { foo:'bar' } });

    生成

    {
     "filtered": {
     "query": {
     "match": {
     "foo": "bar" }
     }
     }
    }
    array-参数

    函数还允许你将参数作为 array ( 比如 ) 传递。 ['must'] )。这告诉你希望该键是 array的函数,因这里将以下参数推送到 array 中。

    示例

    esq.query('filtered', 'query', 'bool', ['must'], { match: { 'foo':'bar' } });

    生成

    {
     "filtered": {
     "query": {
     "bool": {
     "must": [
     {
     "match": {
     "foo": "bar" }
     }
     ]
     }
     }
     }
    }

    测试

    这里模块已经完全测试,使用 mocha 运行测试。