ElasticSearch (запрос API cURL REST) ​​не дает ожидаемых результатов - PullRequest
0 голосов
/ 04 июня 2018

Я использую эту команду, которая должна соответствовать всем документам:

curl -XGET 'localhost:9200/users/_search?pretty' -H 'Content-Type: application/json' -d'
{
  "query": { "match_all": {} }
}
'

Я получаю этот ответ:

{
  "took" : 0,
  "timed_out" : false,
  "_shards" : {
    "total" : 5,
    "successful" : 5,
    "skipped" : 0,
    "failed" : 0
  },
  "hits" : {
    "total" : 0,
    "max_score" : null,
    "hits" : [ ]
  }
}

Но я на 99,9% уверен, что у меня есть документы по этому индексу,Если я прав, почему он не показывает матчи?Если я ошибаюсь, как я могу это подтвердить?

1 Ответ

0 голосов
/ 04 июня 2018

Вы должны быть в состоянии определить, что происходит, если вы знаете (а) где хранятся все ваши документы и (б) что сервер считает индексом пользователей на самом деле.

По первому вопросуВы можете нажать конечную точку _cat/indices, чтобы увидеть, сколько документов у вас есть в каждом индексе (столбец «docs.count»):

$curl -XGET 'http://localhost:9200/_cat/indices?v'

health status index                    pri rep docs.count docs.deleted store.size pri.store.size
green  open   query                      1   0          0            0       159b           159b
green  open   some_index                 1   0         54            0     24.7kb         24.7kb
green  open   autocomplete               1   0          0            0       159b           159b
green  open   test_index                 2   0      10065         4824      7.9mb          7.9mb

Для второго вопроса проверьте псевдонимы, определенные на вашем сервере.,Возможно, что «пользователи» были определены как псевдоним индекса, в котором нет документов, или возможно, что для этого индекса был определен отфильтрованный псевдоним с фильтром, который исключает все ваши документы (многие псевдонимы имеютфильтры, связанные с датами, которые исключают все документы за пределами определенного диапазона дат).Для проверки наличия псевдонимов вы можете использовать

$curl -XGET 'http://localhost:9200/_aliases?pretty=true'
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...