以下是使用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();
});
}]);
答案 0 :(得分:0)
您需要确保将匹配查询与运算符设置为和,see the docs。
在您的情况下,这将是以下几行:
return es.search({
index: 'country',
type: 'state',
q:
{"match" : {
"field" : {
"query" : query,
"operator" : "and"
}
}
}
})
将“field”设置为您要在
中搜索的字段