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 > > > > > >