On 3/16/23 02:24, Björn Häuser wrote:
1.) Are these equivalent field definitions?

Old:

<fieldType name="long" class="solr.TrieLongField" precisionStep="0" 
positionIncrementGap="0”/>

New:

<fieldType name="long" class="solr.LongPointField" docValues="true”/>

I cannot find anything about precisionStep and positionIncrementGap for the new 
fields and assume that docValues will take care of that in some way?

Replying to the initial email rather than the reply from Tomás, because that reply did not maintain the headers for threading.

The precisionStep setting is something intrinsic to Trie types and is not supported by Point types. It is a value related to speeding up range queries, and a setting of zero essentially turns it off.

The positionIncrementGap setting really only makes sense for fields using the TextField class. There's not really any such thing as a phrase query for numeric types, which is where setting that increment really makes a difference.

2.) Do we need to reindex after the scheme change?

We have a large collections and are serving requests 24/7. Is a full index 
required or is Solr/Lucene able to handle both field types until everything is 
updated?

Most indexing-related schema changes, including this one, require a full reindex. If the schema uses Point types and the index contains Trie types, it won't work. Problems could vary, from silent failure, partial failure, throwing an exception, or even the index refusing to load. I haven't tried it, so I am not familiar with what actually happens.

Side note: The Point types are a LOT slower at simple field:value queries than Trie, but Trie is deprecated and will be removed. They've been deprecated since version 6, so they might already be removed. Point types are really good at range queries though, so if you change that to "field:[value TO value]" it should be fast.

Thanks,
Shawn

Reply via email to