Влияет ли порядок в запросе Lucene на результаты? - PullRequest
0 голосов
/ 25 апреля 2019

Я пробовал 2 запроса Lucene ниже в моих запросах HTTP GET, чтобы искать документы в моем ElasticSearch:

q=(Name:\"20190401_150454_992\" OR \"test video\")

и

q=(Name:\"test video\" OR \"20190401_150454_992\")

1-й результат содержит этот документтолько:

"_source": {
    "Name": "test video",
    "Latitude": 25.1062949,
    ...
}

и 2-й результат содержит документ выше, а также

"_source": {
    "Name": "20190401_150454_992",
    "Latitude": 0,
    ...
}

.

Я ожидал, что результаты должны быть одинаковыми (они должнывернуть 2 документов в обоих запросах ), поскольку я не изменил никаких других условий, кроме порядка полей запроса в строке запроса, но онибыли НЕ .Кто-нибудь может объяснить, почему?Спасибо!

Я использую ElasticSearch 5.5.2.

1 Ответ

0 голосов
/ 27 апреля 2019

Ваш вопрос о разнице

q = (Имя: \ "тестовое видео \" ИЛИ \ "20190401_150454_992 \")

и

q = (Имя: \ "20190401_150454_992 \" ИЛИ \ "Тестовое видео \")

Имейте в виду, что поле "Имя" привязано только к вашей первой фразе.Поэтому попробуйте

q = Имя: (\ "test video \" OR \ "20190401_150454_992 \")

, поскольку ваш запрос равен

q = Имя: \ "тестовое видео \" ИЛИ _all: \ "20190401_150454_992 \"

Почему?Потому что есть поле поиска по умолчанию: https://www.elastic.co/guide/en/elasticsearch/reference/5.2/mapping-all-field.html#querying-all-field

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