#688: generalization of second-order operators in SEQP
------------------------+----------------------
Reporter: valkyrie | Owner: valkyrie
Type: task | Status: new
Priority: major | Milestone:
Component: WebSearch | Version:
Resolution: | Keywords: syntax
------------------------+----------------------
Comment (by simko):
Here are some musings on this topic:
1) Firstly, what about making a new special `country` index? We can do
fancy stuff during indexing time so that this index will get populated as
we like. For example, the country value can be read from an associated
Institution record, quite like a conference title can be read from another
collection when we are indexing a conference contribution. Doing fancy
things upon indexing time will permit us to stay simple upon search time,
which has an advantage of giving the best search-time performance possible
to the users.
2) Talking about search time, `collection:field:query` does not look very
nice for collection names containing spaces such as "ATLAS Notes". People
won't be happy to read (or type) expressions like `"ATLAS
Notes:"author:"Doe, J"` in case this syntax ever pops up someplace that is
user-visible. So, if we are to invent a new search syntax to cover more
second-order operator needs, then we can try to make it easily readable
and type-able by humans if possible. Concerning another-collection
searching needs, perhaps via a new reserved search operator `in`, so that
the queries would look like
`(country:US in Institutions)`, `(author:"Doe, J" in "ATLAS Notes")`.
3) The `refersto/citedby` operators are special search operators in that
they are searching in the citation map. If we are covering only the need
to search in other collections, then a new `in` operator can do the job
nicely. Note that it can work for any query, not only for collections.
Dunno how far you wanted to go into generalisations here; thinking of
`author:doe in (refersto:author:ellis and muon)` and the like, the `in`
can be extended in this way and the above use case can be covered by
`collection:"ATLAS Notes"` in the point above. Note that some of these
may be achievable via nested parentheses already, so some of these may not
necessitate such a globalisation. But it can still be useful. Perhaps
you can mention other typical use cases you had in mind so that we can
design the new syntax better.
--
Ticket URL: <http://invenio-software.org/ticket/688#comment:2>
Invenio <http://invenio-software.org>