some days ago i added a new dynamic field via api:

curl -X POST -H 'Content-type:application/json' --data-binary '{ 
"add-dynamic-field": { "name": "*_lrs", "type": "location_rpt", "indexed": 
true, "stored": true, "omitNorms":true, "multiValued": true } }' 
http://localhost:8983/api/cores/profile_v2_shard1_replica_n1/schema

use case is that users may have multiple locations (home location, last 
location, and additional locations) and they should be discovered by other 
users via all of them.

after adding the new dynamic field. search performance degraded (not searching 
via the new field geo_lrs, existing index using the same schema with location 
field not using multiple values).

i found out (via zk conf down + diff) that field definition changed from:
-  <fieldType name="location_rpt" 
class="solr.SpatialRecursivePrefixTreeFieldType" geo="true" maxDistErr="0.01" 
distErrPct="0.025" distanceUnits="kilometers"/>
+  <fieldType name="location_rpt" 
class="solr.SpatialRecursivePrefixTreeFieldType" geo="true" omitNorms="true" 
omitTermFreqAndPositions="true" maxDistErr="0.01" termOffsets="false" 
distErrPct="0.025" distanceUnits="kilometers" termPositions="false" 
omitPositions="true"/>

i don't know why this happend implicitely and have no idea why performance 
degraded (in general if these additional norms and stuff is not needed, index 
should be smaller and probably faster)? After more and more users are updated 
with the new field the number of slow requests get higher and higher.

Reply via email to