Запрос с дефисом (-) в начале всегда возвращает все документы индекса - PullRequest
0 голосов
/ 12 июня 2018

Вот проблема: у меня есть индекс (ivy_task) с отображением и его полем (barCode), как это

PUT ivy_task/_mapping/ElasticTaskInfo
{
 "properties" : {
    "barCode" : {
    "type" : "text",
    "fielddata" : true,
    "analyzer": "keyword"
    }
 }
}

Обратите внимание, что у меня есть 7 документов в этом индексе

Икогда я использую запрос, подобный этому, для поиска (с дефисом в начале):

    POST /ivy_task/ElasticTaskInfo/_search/
    {
         "query":{"query_string": {
         "default_field": "barCode",
         "query": "-t"
         }},
         "size": 99
    }

Пока я ставлю дефис в начале запроса, он всегда возвращает все 7 документов.(Например: -t, -d, -bbbbbbbbbbbbb. -Aaaa1111 ) Может кто-нибудь помочь мне объяснить, почему он возвращает все 7 документов?Вот штрих-код всех 7 документов:

почтиThere009

a-tinhte001

почтиThere0011

почтиThere0012

a-почтиThere0014

nearThere0010

a-nearThere0013

Спасибо.

1 Ответ

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

Это связано с тем, что в запросе строки запроса знак минус - является зарезервированным символом, который обозначает логический оператор , цель которого не включать в себя термин рядом с ним.

Таким образом, все ваши запросы в основном говорят следующее:

  • -t: "дайте мне все документы, которые не содержат термин t
  • -d:"дай мне все документы, которые не содержат термин d
  • -bbbbbbbbbbbbb: "дай мне все документы, которые не содержат термин bbbbbbbbbbbbb
  • -aaaa1111:"дайте мне все документы, которые не содержат термин aaaa1111

Во всех вышеупомянутых случаях все документы извлекаются, поскольку они соответствуют запросу.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...