You are viewing a plain text version of this content. The canonical link for it is here.
Posted to solr-user@lucene.apache.org by Alexander Sagen <as...@gmail.com> on 2014/11/21 11:35:47 UTC

SpatialRecursivePrefixTreeFieldType, filtering on multivalued multipoints

Hi all,

So in my index I've got 2 docs with 1 multivalued
SpatialRecursivePrefixTreeFieldType-field:
[
      {"points": ["MULTIPOINT(1 1, 2 2)", "MULTIPOINT(10 10, 20 20)"]},
      {"points": ["MULTIPOINT(1 1, 2 2)"]}
]

Query:
q=*:*&fq=points:"IsWithin(POLYGON((0 0, 4 0, 4 4, 0 4, 0 0)))"

Result:
[{"points": ["MULTIPOINT(1 1, 2 2)"]}]

I expected this to also return the first document as the polygon surrounds
all of the points in one of the multipoints (per my undertanding of how
multivalued works).

There was some mention on this by David Smiley on LUCENE-4644, but I
couldn't figure out if there was actually a solution provided or not.
Anyone know? Or any workaround to get the desired results?


My schema.xml:

<schema name="pointschema" version="1.5">
  <types>
    <fieldType name="pointsType"
class="solr.SpatialRecursivePrefixTreeFieldType"

spatialContextFactory="com.spatial4j.core.context.jts.JtsSpatialContextFactory"
      geo="false"
      worldBounds="-1 -1 100000 100000"
      distErrPct="0"
      maxDistErr="1"
      units="degrees"/>
  </types>
  <fields>
    <field name="points" type="pointsType" indexed="true" stored="true"
multiValued="true"/>
  </fields>
</schema>


Cheers, Alex