首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在elasticsearch.js中使用AngularJS查询

在elasticsearch.js中使用AngularJS查询
EN

Stack Overflow用户
提问于 2015-11-17 15:39:52
回答 1查看 229关注 0票数 0

我试图在我的elasticsearch.js控制器中使用AngularJS查询,但是还没有能够在http请求中将它们作为params传递,或者在elasticsearch.js()方法中使用它们。推荐的语法是什么?

代码语言:javascript
复制
import elasticsearch from "elasticsearch";

export default class SearchDirectiveController {
  constructor($scope, $http, SearchDirectiveService) {
    this.es = new elasticsearch.Client({
      host: 'http://192.168.99.100:9200',
      log: 'trace'
    });

    this.search = () => {
      this.es.search({
        index: 'voter',
        "query": {
            "match": {
              "first": "roger"
            }
          }
        }
      }).then((resp) => {
          var hits = resp.hits.hits;
          this.users = hits;
          $scope.$digest();
      },(err) => {
          console.trace(err.message);
      });
    }

    this.fullTextSearch = () => {
      $http({
        method: 'GET',
        url: 'http://192.168.99.100:9200/voter/voter,address/_search'
      }).then(function successCallback(resp) {
          console.log(resp.data.hits.hits);
          let hits = resp.data.hits.hits;
          $scope.users = hits;
      }, function errorCallback(err) {
          console.trace(err.message);
      }, {
        params: {
          "query": {
              "match": {
                "first": "roger"
              }
            }
          }
        });
      }
  }

}

SearchDirectiveController.$inject = ['$scope', '$http', 'SearchDirectiveService'];
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-11-17 16:44:44

我的问题是,我忘记了搜索对象上的键"body“:

代码语言:javascript
复制
    this.searchQuery = (field) => {
      return {
        'query': {
          'wildcard': {
            '_all': '*' + this.all + '*'
          }
        }
      };
    };

    this.search = (field) => {
      this.es.search({
        index: 'voter',
        body:  this.searchQuery(field)
      }).then((resp) => {
        const hits = resp.hits.hits;
        this.users = hits;
        $scope.$digest();
      }, (err) => {
        console.trace(err.message);
      });
    };
  }
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/33761006

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档