Dan, If you don't mind using a float format DocValues field, you could store NAN (Not A Number). But any sorting operations would be slower, or size comparisons. Floats might be entirely inappropriate, but I thought it is worth a mention. Cheers -- Rick

On 2017-05-04 10:55 AM, Dan . wrote:
Hi Shawn,

Thanks for the suggestion.

I gave that a try but unfortunately it didn't work.

Delete somehow would be really useful, seems wasteful to have e.g. -1
representing null.

Cheers,
Dan

On 4 May 2017 at 15:30, Shawn Heisey <apa...@elyograg.org> wrote:

On 5/4/2017 7:40 AM, Dan . wrote:
I have a field like this:

<fieldType name="integer" class="solr.TrieIntField" omitNorms="true"/>
<field name="popularity" type="integer" indexed="false" stored="false"
docValues="true" multiValued="false"/>

so I can do a fast in-place atomic updates

However if I do e.g.

curl -H 'Content-Type: application/json'
'http://localhost:8983/solr/collection/update?commit=true'
--data-binary '
[{
  "id":"my_id",
  "popularity":{"set":null}
}]'

then I'd expect the popularity field to be removed, however it's not.
I'm not really sure how that "null" value will be interpreted.  It's
entirely possible that this won't actually delete the field.

I think we need a "delete" action for Atomic Updates, to entirely remove
the field regardless of what it currently contains.  There is "remove"
and "removeRegex", which MIGHT be enough, but I think delete would be
useful syntactic sugar.

Dan, can you give the following update JSON a try instead?  I am not
guaranteeing that this will do the job, but given the current
functionality, I think this is the option most likely to work:

{
  "id":"my_id",
  "popularity":{"removeRegex":".*"}
}

Thanks,
Shawn



Reply via email to