Wpis z mikrobloga

Ktoś ma pomysł, dlaczego jak w Elastic szukam:

NOT ((NOT _exists_:pole) OR (pole:""))
to znajduje dokumenty, gdzie pole pole jest pustym ciągiem znaków ""? Ma znaleźć niepuste wartości.

Natomiast testuję też zapytania:

NOT _exists_:pole
to prawidłowo zwraca tylko nullowe pola

NOT pole:""
nie zwraca nic, choć istnieją wartości nullowe oraz niepuste

pole:""
też nie zwraca nic, choć pełno jest dokumentów, gdzie pole jest pustym ciągiem znaków

a ponieważ backend zamienia takie wyrażenie na

((NOT _exists_:pole) OR (pole:""))
to wyszukuje tylko nullowe pola

Pole pole jest typu TEXT i nie ma podpiętych żadnych maperów ani domyślnej wartości.

#elasticsearch #programowanie #lucene #backend
  • 2
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach