[almighty] Worried about search architecture
Thomas Mäder
tmader at redhat.com
Fri Nov 11 08:03:26 UTC 2016
https://github.com/almighty/almighty-core/issues/480
On 11/10/2016 11:57 PM, Aslak Knutsen wrote:
>
> as we move to offer more search functionality in our API, I am
> becoming a bit worried about our architecture in that respect. If I
> look at the search service we have written for the "link typeahead"
> feature, we see code that parses a query string in a format that is
> special to this exact API call, and converts it directly into a query
> on the postgres db.
>
> If we look at what the code does, it could be expressed like this:
>
> |searchTerms:= parseSpecialSyntax(queryString)|
>
> |return select * from work_items i where i.id <http://i.id>
> matches(searchTearms) or i.title matches(searchTerms) or i.Description
> matches(searchTerms)|
>
> While the first line is specific to this particular API call, the
> second part can be reused in other queries. I have tried to express
> this separation in the WorkItemRepository.List() method by passing in
> a tree of operators that describes the query instead of a query string.
>
> I am quite open to discuss how we want to offer a search API on our
> object model to the request handlers, but I think that we need an
> internal search API layer that offers what we can search for in a
> structure way. Query parsing for special case queries (for example,
> parsing well known URLs) should not be part of this API, but done in a
> layer above. This way we can reuse a lot of checks (for example for
> sql injection) and the translation to the sql layer. I believe that we
> will write a bunch of special case queries that we will be able to map
> to a relatively simple set internal search API calls.
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://listman.redhat.com/archives/almighty-public/attachments/20161111/93278151/attachment.htm>
More information about the almighty-public
mailing list