2015-04-21 16 views
5

ja próbując uchwycić listę wszystkich indeksów i ich rozmiarów w taki sposób, że mogę uchwycić informacji przy użyciu $ http usługę kątowej, a następnie iterację informacji za pomocą NG-repeat korzystniej z czymś takim:ElasticSearch Uzyskaj indeksu nazw i przechowywać Rozmiar

<ul ng-repeat="elsindex in elsIndexHttpResponse"> <li>{{elsindex.name}}:{{elsindex.size}}</li> </ul>

najbliższy rzeczą znalazłem to: http://localhost:9200/_cat/indices?h=index,store.size

wyjątkiem:

a. jego odpowiedzi nie znajdują się w jsonie, więc łatwe odwoływanie się do nich za pomocą elementów ng-repeat <li> nie zadziała; i

b. Chciałbym, jeśli to możliwe, uzyskać rozmiar wyjściowy odzwierciedlający ten sam rozmiar jednostki (jak bajty).

Jeśli wiąże się to z czymś skomplikowanym, byłbym wdzięczny za wskazówki, na których powinienem się skupić.

Używam elasticsearch v1.4.4

Dziękujemy

Odpowiedz

8

Można spróbować jak http://localhost:9200/_stats/index,store. Poda także dodatkowe informacje. Jeśli chcesz zobaczyć w przeglądarce, możesz użyć numeru http://localhost:9200/_stats/index,store?pretty, aby uzyskać lepsze wyniki. Sprawdź json wyjścia, aby użyć tylko potrzebnych danych. Patrz indices stats api.

+0

Dziękuję za odpowiedź. Tak naprawdę znalazłem te wywołania REST. Problem polega na tym, że nie odpowiada on zestawem danych, który może być użyty do uzyskania nazwy indeksu (przynajmniej nie tak, jak mi się wydaje). Wygląda na to, że istnieje najwyższy poziom: _ stopnie, które ma troje dzieci: suma, _wartość i indeksy. Ale wskaźniki są tylko nazwane. Nie są one wyróżnia „name”: „wartość” i myślę, że to jest powód, dlaczego nie mogę dostać się do nich za pomocą elsIndex.name (lub coś podobnego - skoro, jak są one zamknięte przez _shards i indeksy obiektów). – Gregg

+0

Jeszcze raz dziękuję za odpowiedź. Zaznaczam ją jako akceptowaną, ponieważ zawiera wszystkie potrzebne dane.Powodem, dla którego zajęło mi to tyle czasu, jest to, że próbowałem szukać innej odpowiedzi - takiej, która przechwytuje tablicę obiektów json, a nie obiekt json obiektów json. Chciałem tego, ponieważ nie rozumiałem, jak parsować obiekt obiektów. Właśnie się dowiedziałem, że dane, które chcę, są osiągalne za pomocą instrukcji takich jak: '$ http.get (" http: // localhost: 9200/_stats/index, store ")', '.success (function (dane) {',' $ scope.elsIndexHttpArray = Object.getOwnPropertyNames (data.indices); ' – Gregg

10

Zdaję sobie sprawę, że to pytanie już się zaczęło, ale chciałem dodać 2 centy.

http://localhost:9200/_cat/indices?h=index,store.size&bajtów = k Format & = json

Czy rzeczywiście dostać dokładnie to, co prosiłeś:

formatu
  • = json -> formatuje wyjście do JSON
  • bytes = k -> wyświetla rozmiar w kilobajtach

Informacje dotyczące rozmiaru jednostki została pobrana od cat APIs doc

informacje dotyczące formatu była próbą w Sense, który ma pewne cechy autouzupełnianie całkiem przydatne do wykrywania takich opcji.

Pozdrawiam.

Powiązane problemy