New operator.

2013-06-15 Thread Yanis Kakamaikis
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


Re: New operator.

2013-06-17 Thread Yanis Kakamaikis
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 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
>


Re: New operator.

2013-06-18 Thread Yanis Kakamaikis
Thanks, Roman.  I'm going to do some digging...


On Mon, Jun 17, 2013 at 9:53 PM, Roman Chyla  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  > >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
> > >
> >
>