在Angular JS中为ElasticSearch查询指定AND运算符

时间:2014-02-15 12:51:20

标签: elasticsearch

以下是使用angularjs查询elasticsearch的代码部分。 如果我给“印度德里”,默认查询是OR 我希望运算符为“AND”。(如运算符:'AND') 如何将其添加到现有功能。

此外,如果我必须指定模糊性,我该怎么做?

myServices.factory('searchService', ['es',  function(es) {
  return {
    textSearch: function(query){
      return es.search({
        index: 'country',
        type: 'state',
        q: query
      })
    }
  };
}]);

以下是控制器

var myControllers = angular.module('myControllers', []);

myControllers.controller('SearchController', ['$scope', 'es','searchService',
    function($scope, es, searchService) {
     $scope.search = function() {
       var hits = searchService.textSearch($scope.query || '*');
       hits.then(function(resp) {
         $scope.results = resp.hits.hits;
       });
     };

    angular.element(document).ready(function () {
      $scope.search();
    });
        }]);

1 个答案:

答案 0 :(得分:0)

您需要确保将匹配查询与运算符设置为see the docs

在您的情况下,这将是以下几行:

return es.search({
        index: 'country',
        type: 'state',
        q: 
        {"match" : {
             "field" : {
              "query" : query,
              "operator" : "and"
           }
         }
       }
      })

将“field”设置为您要在

中搜索的字段