2014-10-20 11 views

Odpowiedz

5

Jest to roztwór roboczy, a nie pytanie, ale chcę podzielić to mieć nadzieję, że to pomoże:

kod html do wywołania funkcji autouzupełniania:

<input required type="text" 
    popover-trigger="focus" 
    placeholder="recherche globale" 
    class="form-control" 
    ng-model="simplequeryInput" 
    ng-model-onblur focus-on="focusMe" 
    ng-click="searchSimple=true" ng-keyup="$event.keyCode == 13 ? submitSimple() : null" 
    typeahead="item for item in autocomplete($viewValue) | limitTo:15 " 
    typeahead-on-select="simplequeryInput=$model" 
/> 
  • obejmować elasticsearch (v2.4.0) skrypt dostępny here

  • mój serwis elasticsearch

    interfaceApp.service('elasticQuery', function ($rootScope,esFactory) { 
        return esFactory({ host: $rootScope.elastic_host}); //'localhost:9200' 
    }); 
    
  • angularjs kod zapytań elasticsearch:

    'use strict'; 
    var searchModules = angular.module('searchModules', ['ngRoute','ngDialog']); 
    searchModules.controller('searchCtrl', function (ngDialog,$scope, $http,$rootScope, elasticQuery) { 
        ... 
        $scope.autocomplete = function(val) { 
        var keywords = []; 
        keywords.push(val); 
        // THIS RETURN IS VERY IMPORTANT 
        return elasticQuery.search({ 
         index: 'YOUR_INDEX_NAME', 
         size: 15, 
         body: { 
         "fields" : ["T_FAMILY","T_GENUS","T_SCIENTIFICNAME"], // the fields you need 
         "query" : { 
         "bool" : { 
          "must" : [ 
          { 
           "query_string" : { 
           "query" : "T_FAMILY:"+val // i want only source where FAMILY == val 
           } 
          } 
          ] 
         } 
         } 
         } 
        }).then(function (response) { 
         for (var i in response.hits.hits) { 
         var fields = (response.hits.hits[i]).fields; 
         var tmpObject = fields["T_FAMILY"] +" " + fields["T_GENUS"] + " ("+fields["T_SCIENTIFICNAME"] + ")"; 
         keywords.push(tmpObject); 
         } 
        return keywords; 
        }); 
        } 
    }); 
    

nadzieję, że pomoże

+0

Czy masz ochotę opublikować kod html/js dla próbki? – techcraver

+0

mi powiedzieć, co było trzeba – AlainIb

+0

Dobrze znalazłem drogę do pracy to z dokumentacji kątowe-ui dostępna pod adresem: https://angular-ui.github.io/bootstrap/ Ale kod fragment dał mi pomysł jak wyodrębnić dane z json. Głosujcie za to. – techcraver

Powiązane problemy