Поиск SOLR для нулевых / не установленных значений - PullRequest
2 голосов
/ 16 мая 2019

Как мне искать документы, в которых отсутствует поле?

Есть 3 состояния:

{ id: 1, name: "joe"}

{ id: 2, name: ""} <--- Как мне найти это? </p>

{ id: 3 } <--- Как мне найти это? </p>


Я пробовал

Возвращает ожидаемый результат, но попытка того же с помощью id:2 также возвращает результат?

?q=id:3 AND -name:["" TO *]

{id: 3} это соответствует ожидаемому, поскольку name отсутствует

?q=id:2 AND -name:["" TO *]

{id: 2, name: ""} но я ожидаю, что это не будет совпадать, поскольку name здесь не пропущено


С другой стороны, явно искать пустые поля не так, как я ожидаю:

?q=id:2 AND name:""

{id: 2, name: ""} как и ожидалось

?q=id:3 AND name:""

{id: 3}, хотя name здесь не установлено


Может кто-нибудь объяснить, как искать пустую строку по сравнению с удаленными полями?

Имеет значение, что входит в fq против q?

1 Ответ

0 голосов
/ 16 мая 2019

вы можете искать такие несуществующие поля, как это

!name:[* TO *]

, он покажет вам все документы, для которых поле не установлено.

Если вы ищетеполя, которые есть в документе, но empy я буду использовать

name:*

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