Thanks, Roman.  I'm going to do some digging...

On Mon, Jun 17, 2013 at 9:53 PM, Roman Chyla <roman.ch...@gmail.com> wrote:

> Hello Yanis,
>
> We are probably using something similar - eg. 'functional operators' - eg.
> edismax() to treat everything inside the bracket as an argument for
> edismax, or pos() to search for authors based on their position. And
> invenio() which is exactly what you describe, to get results from external
> engine. Depending on the level of complexity, you may need any/all of the
> following
>
> 1. query parser that understands the operator syntax and can build some
> 'external search' query object
> 2. the 'query object' that knows to contact the external service and return
> lucene docids - so you will need some translation
> externalIds<->luceneDocIds - you can for example index the same primary key
> in both solr and the ext engine, and then use a cache for the mapping
>
> To solve the 1, you could use the
> https://issues.apache.org/jira/browse/LUCENE-5014 - sorry for the
> shameless
> plug :) - but this is what we use and what i am familiar with, you can see
> a grammar that gives you the 'functional operator' here - if you dig
> deeper, you will see how it is building different query objects for
> different operators:
>
> https://github.com/romanchyla/montysolr/blob/master/contrib/adsabs/grammars/ADS.g
>
> and here an example how to ask the external engine for results and return
> lucene docids:
>
> https://github.com/romanchyla/montysolr/blob/master/contrib/invenio/src/java/org/apache/lucene/search/InvenioWeight.java
>
> it is a bit messy and you should probably ignore how we are getting the
> results, just look at nextDoc()
>
> HTH,
>
>   roman
>
>
> On Mon, Jun 17, 2013 at 2:34 PM, Yanis Kakamaikis <
> yanis.kakamai...@gmail.com> wrote:
>
> > Hi all,   thanks for your reply.
> > I want to be able to ask a combined query,  a normal solr querym but one
> of
> > the query fields should get it's answer not from within the solr engine,
> > but from an external engine.
> > the rest should work normaly with the ability to do more tasks on the
> > answer like faceting for example.
> > The external engine will use the same objects ids like solr, so the
> boolean
> > query that uses this engine answer be executed correctly.
> > For example, let say I want to find a person by his name, age, address,
> and
> > also by his picture. I have a picture indexing engine, I want to create a
> > combined query that will call this engine like other query field.   I
> hope
> > it's more clear now...
> >
> >
> > On Sun, Jun 16, 2013 at 4:02 PM, Jack Krupansky <j...@basetechnology.com
> > >wrote:
> >
> > > It all depends on what you mean by an "operator".
> > >
> > > Start by describing in more detail what problem you are trying to
> solve.
> > >
> > > And how do you expect your users or applications to use this
> "operator".
> > > Give some examples.
> > >
> > > Solr and Lucene do not have "operators" per say, except in query parser
> > > syntax, but that is hard-wired into the individual query parsers.
> > >
> > > -- Jack Krupansky
> > >
> > > -----Original Message----- From: Yanis Kakamaikis
> > > Sent: Sunday, June 16, 2013 2:01 AM
> > > To: solr-user@lucene.apache.org
> > > Subject: New operator.
> > >
> > >
> > > Hi all,    I want to add a new operator to my solr.   I need that
> > operator
> > > to call my proprietary engine and build an answer vector to solr, in a
> > way
> > > that this vector will be part of the boolean query at the next step.
> > How
> > > do I do that?
> > > Thanks
> > >
> >
>

Reply via email to