On Tue, 03 Dec 2013, [email protected] wrote: > So, briefly, what I need is a type of sub-search in the same field as > the first argument... Is there a way (using regular expressions or a > trick/hack) to make this work and get some proper results?
Right now you'd have to make a second pass: firstly, retrieve results as you do now (including false positives); secondly, pass through results calling field instance filtering function that would pick only the fields having wanted another subfield. WRT filtering, see: http://invenio-software.org/ticket/1550 and the related commits. So, while this is doable, and the master branch has ingredients ready, there is some code to write and run after your searches, which may be too slow in case there is a huge number of results returned in the first step before the filtering step is called. BTW just yesterday we thought about adding a special index for a similar searching need, auhtor-at-institute, where a user would type: ellis@CERN and the query would return all records where 700 $a contained `ellis' with the corresponding 700 $u containing `cern'. So your email is coming very timely :) P.S. The post-filtering technique could be generalised into a new second-order search operator, say @, so that all the following queries would be legal: author:ellis@affiliation:CERN author:ellis@relator:editor title:of@provenance:arXiv without having to introduce any special index. (If the post-filtering slowness is acceptable; otherwise a special index would be needed.) Best regards -- Tibor Simko

