Поиск SOLR для нулевых / не установленных значений

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

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

{ id: 1, name: "joe"}

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

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


я пробовал

Это возвращает ожидаемый результат, но попытка того же с 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 ответ


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

!name:[* TO *]

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

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

name:*


Есть идеи?

10000