I think I've figured out where the issue is, at least superficially. It's
in what parameter is used to define the field to route on. I set up two
collections to use the same configset but slightly altered calls to the
Collections API.

action=CREATE&name=CollectionOne&numShards=2&router.name=compositeId&
*router.field*
=iqroutingkey&maxShardsPerNode=2&collection.configName=RoutingTest
action=CREATE&name=CollectionTwo&numShards=2&router.name=compositeId&
*routerField*
=iqroutingkey&maxShardsPerNode=2&collection.configName=RoutingTest

The get handler returns null for CollectionOne (even with a _route_
parameter), but it will return the document for CollectionTwo in any case.
I will gather and post the trace logs when I get a chance.



On Thu, Mar 16, 2017 at 10:52 AM Yonik Seeley <ysee...@gmail.com> wrote:

> Ah, yeah, if you're using a different route field it's highly likely
> that's the issue.
> I was always against that "feature", and this thread demonstrates part
> of the problem (complicating clients, including us human clients
> trying to make sense of what's going on).
>
> -Yonik
>
>
> On Thu, Mar 16, 2017 at 10:31 AM, Chris Ulicny <culicny@iq.media> wrote:
> > Speaking of routing, I realized I completely forgot to add the routing
> > setup to the test cloud, so it probably has something to do with the
> issue.
> > I'll add that in and report back.
> >
> > So the routing and uniqueKey setup is as follows:
> >
> > Schema setup:
> > <uniqueKey>iqdocid</uniqueKey> <field name="iqroutingkey" type="string"
> > multiValued="false" indexed="true" required="true" stored="true"/> <field
> > name="iqdocid" type="string" multiValued="false" indexed="true" required=
> > "true" stored="true"/>
> >
> > I don't think it's mentioned in the documentation about using routerField
> > for the compositeId router, but based on the resolution of SOLR-5017
> > <https://issues.apache.org/jira/browse/SOLR-5017>, we decided to use the
> > compositeId router with routerField set to 'iqroutingkey' which is using
> > the "!" notation. In general, the iqroutingkey field is of the form:
> > <GUID>!<Year>!<iqdocid_value>
> >
> > Unless I misunderstood what was changed with that patch, that form should
> > still route appropriately, and it seems that it has distributed the
> > documents appropriately from our basic testing.
> >
> > On Thu, Mar 16, 2017 at 9:42 AM David Hastings <
> hastings.recurs...@gmail.com>
> > wrote:
> >
> > i still would like to see an experiment where you change the field to id
> > instead of iqdocid,
> >
> > On Thu, Mar 16, 2017 at 9:33 AM, Yonik Seeley <ysee...@gmail.com> wrote:
> >
> >> Something to do with routing perhaps? (the mapping of ids to shards,
> >> by default is based on hashes of the id)
> >> -Yonik
> >>
> >>
> >> On Thu, Mar 16, 2017 at 9:16 AM, Chris Ulicny <culicny@iq.media> wrote:
> >> > iqdocid is already set to be the uniqueKey value.
> >> >
> >> > I tried reindexing a few documents back into the problematic cloud and
> > am
> >> > getting the same behavior of no document found for get handler.
> >> >
> >> > I've also done some testing on standalone instances as well as some
> > quick
> >> > cloud setups (with embedded zk), and I cannot seem to replicate the
> >> > problem. For each test, I used the exact same configset that is
> causing
> >> the
> >> > issue for us and indexed a document from that instance as well. I can
> >> > provide more details if that would be useful in anyway.
> >> >
> >> > Standalone instance worked
> >> > Cloud mode worked regardless of the use of the security plugin
> >> > Cloud mode worked regardless of explicit get handler definition
> >> > Cloud mode consistently worked with explicitly defining the get
> handler,
> >> > then removing it and reloading the collection
> >> >
> >> > The only differences that I know of between the tests and the
> > problematic
> >> > cloud is that solr is running as a different user and using an
> external
> >> > zookeeper ensemble. The running user has ownership of the solr
> >> > installation, log, and data directories.
> >> >
> >> > I'm going to keep trying different setups to see if I can replicate
> the
> >> > issue, but if anyone has any ideas on what direction might make the
> most
> >> > sense, please let me know.
> >> >
> >> > Thanks again
> >> >
> >> > On Wed, Mar 15, 2017 at 5:49 PM Erick Erickson <
> erickerick...@gmail.com>
> >> > wrote:
> >> >
> >> > Wait... Is iqdocid set to the <uniqueKey> in your schema? That might
> >> > be the missing thing.
> >> >
> >> >
> >> >
> >> > On Wed, Mar 15, 2017 at 11:20 AM, Chris Ulicny <culicny@iq.media>
> wrote:
> >> >> Unless the behavior's changed on the way to version 6.3.0, the get
> >> handler
> >> >> used to use whatever field is set to be the uniqueKey. We have
> >> > successfully
> >> >> been using get on a 4.9.0 standalone core with no explicit "id" field
> >> >> defined by passing in the value for the uniqueKey field to the get
> >> > handler.
> >> >> We tend to have a bunch of id fields floating around from different
> >> >> sources, so we avoid keeping any of them named as "id"
> >> >>
> >> >> iqdocid is just a basic string type
> >> >> <field name="iqdocid" type="string" multiValued="false"
> indexed="true"
> >> >> required="true" stored="true"/>
> >> >>
> >> >> I'll do some more testing on standalone versions, and see how that
> > goes.
> >> >>
> >> >> On Wed, Mar 15, 2017 at 1:52 PM David Hastings <
> >> > hastings.recurs...@gmail.com>
> >> >> wrote:
> >> >>
> >> >>> from your previous email:
> >> >>> "There is no "id"
> >> >>> field defined in the schema."
> >> >>>
> >> >>> you need an id field to use the get handler
> >> >>>
> >> >>> On Wed, Mar 15, 2017 at 1:45 PM, Chris Ulicny <culicny@iq.media>
> >> wrote:
> >> >>>
> >> >>> > I thought that "id" and "ids" were fixed parameters for the get
> >> > handler,
> >> >>> > but I never remember, so I've already tried both. Each time it
> comes
> >> > back
> >> >>> > with the same response of no document.
> >> >>> >
> >> >>> > On Wed, Mar 15, 2017 at 1:31 PM Alexandre Rafalovitch <
> >> >>> arafa...@gmail.com>
> >> >>> > wrote:
> >> >>> >
> >> >>> > > Actually.....
> >> >>> > >
> >> >>> > > I think Real Time Get handler has "id" as a magical parameter,
> not
> >> as
> >> >>> > > a field name. It maps to the real id field via the uniqueKey
> >> >>> > > definition:
> >> >>> > > https://cwiki.apache.org/confluence/display/solr/RealTime+Get
> >> >>> > >
> >> >>> > > So, if you have not, could you try the way you originally wrote
> > it.
> >> >>> > >
> >> >>> > > Regards,
> >> >>> > >    Alex.
> >> >>> > > ----
> >> >>> > > http://www.solr-start.com/ - Resources for Solr users, new and
> >> >>> > experienced
> >> >>> > >
> >> >>> > >
> >> >>> > > On 15 March 2017 at 13:22, Chris Ulicny <culicny@iq.media>
> wrote:
> >> >>> > > > Sorry, that is a typo. The get is using the iqdocid field.
> There
> >> is
> >> >>> no
> >> >>> > > "id"
> >> >>> > > > field defined in the schema.
> >> >>> > > >
> >> >>> > > > solr/TestCollection/get?iqdocid=2957-TV-201604141900
> >> >>> > > >
> >> >>> > > >
> solr/TestCollection/select?q=*:*&fq=iqdocid:2957-TV-201604141900
> >> >>> > > >
> >> >>> > > > On Wed, Mar 15, 2017 at 1:15 PM Erick Erickson <
> >> >>> > erickerick...@gmail.com>
> >> >>> > > > wrote:
> >> >>> > > >
> >> >>> > > >> Is this a typo or are you trying to use get with an "id"
> field
> >> and
> >> >>> > > >> your filter query uses "iqdocid"?
> >> >>> > > >>
> >> >>> > > >> Best,
> >> >>> > > >> Erick
> >> >>> > > >>
> >> >>> > > >> On Wed, Mar 15, 2017 at 8:31 AM, Chris Ulicny
> <culicny@iq.media
> >> >
> >> >>> > wrote:
> >> >>> > > >> > Yes, we're using a fixed schema with the iqdocid field set
> as
> >> > the
> >> >>> > > >> uniqueKey.
> >> >>> > > >> >
> >> >>> > > >> > On Wed, Mar 15, 2017 at 11:28 AM Alexandre Rafalovitch <
> >> >>> > > >> arafa...@gmail.com>
> >> >>> > > >> > wrote:
> >> >>> > > >> >
> >> >>> > > >> >> What is your uniqueKey? Is it iqdocid?
> >> >>> > > >> >>
> >> >>> > > >> >> Regards,
> >> >>> > > >> >>    Alex.
> >> >>> > > >> >> ----
> >> >>> > > >> >> http://www.solr-start.com/ - Resources for Solr users,
> new
> >> and
> >> >>> > > >> experienced
> >> >>> > > >> >>
> >> >>> > > >> >>
> >> >>> > > >> >> On 15 March 2017 at 11:24, Chris Ulicny <culicny@iq.media
> >
> >> >>> wrote:
> >> >>> > > >> >> > Hi,
> >> >>> > > >> >> >
> >> >>> > > >> >> > I've been trying to use the get handler for a new solr
> >> cloud
> >> >>> > > >> collection
> >> >>> > > >> >> we
> >> >>> > > >> >> > are using, and something seems to be amiss.
> >> >>> > > >> >> >
> >> >>> > > >> >> > We are running 6.3.0, so we did not explicitly define
> the
> >> >>> request
> >> >>> > > >> handler
> >> >>> > > >> >> > in the solrconfig since it's supposed to be implicitly
> >> > defined.
> >> >>> > We
> >> >>> > > >> also
> >> >>> > > >> >> > have the update log enabled with the default
> > configuration.
> >> >>> > > >> >> >
> >> >>> > > >> >> > Whenever I send a get query for a document already known
> > to
> >> > be
> >> >>> in
> >> >>> > > the
> >> >>> > > >> >> > collection, I get no documents returned. But when I use
> a
> >> >>> filter
> >> >>> > > >> query on
> >> >>> > > >> >> > the uniqueKey field for the same value I get the
> document
> >> > back
> >> >>> > > >> >> >
> >> >>> > > >> >> > solr/TestCollection/get?id=2957-TV-201604141900
> >> >>> > > >> >> >
> >> >>> > > >> >> >
> >> >>> solr/TestCollection/select?q=*:*&fq=iqdocid:2957-TV-201604141900
> >> >>> > > >> >> >
> >> >>> > > >> >> > Is there some configuration that I am missing?
> >> >>> > > >> >> >
> >> >>> > > >> >> > Thanks,
> >> >>> > > >> >> > Chris
> >> >>> > > >> >>
> >> >>> > > >>
> >> >>> > >
> >> >>> >
> >> >>>
> >>
>

Reply via email to