[almighty] How would the 'search' URLs look like for the ALM Search service ?

Max Rydahl Andersen manderse at redhat.com
Thu Oct 20 07:51:19 UTC 2016


Hi Shoubhhik,


> Hi folks,
>
> Wanted to discuss how the /api/search URL(s) would look like.
>
> To set the scope of the discussion right, I must mention that in this
> sprint we are working on supporting search on ID , URL and full text ( 
> for
> title and description only ) of a workitem.

>    1. The ID search is currently only on workitems. ( But in future it
>    would be supported for other objects as well. Example, Users,etc. )
>
>    To search by ID --
>
>    /api/search/q*=id:4324*
>    This is going to look up the workitem table *only*.
>
>    2.
>    To search by URL --
>
>    /api/search/q*=url:http://demo.almighty.io/#/detail/71
>    <http://demo.almighty.io/#/detail/71>*

This api seems good for when you explicitly know what key you want to 
search for.

I'm wondering if in the case for the autocomplete/type-ahead context if 
it would not make sense to a have a "fuzzy" or smart search that will 
simply do a smart guess of what you are trying to search for. Even do 
all three searched and sort them by probability ?

Examples:

`/api/search/q=4324` would return first the items with that exact id and 
secondly any issues that has text match on that query ?

`/api/search/q=http://d.a.io/#/71` would return first the items with 
that exact url id and secondly any issues that has text match (and in 
future dependency) on that query ?


>    3.
>    Search by ID *AND* URL is not supported.
>    If a q=xxyzz  contains both URL and ID, we only pickup the URL and
>    discard the rest.
>
>    Example.
>    /api/search/q=*id:4324*+
>
> *url:http://demo.almighty.io/#/detail/71
>    <http://demo.almighty.io/#/detail/71> *is effectively
>
>    /api/search/q=
>
> *url:http://demo.almighty.io/#/detail/71
>    <http://demo.almighty.io/#/detail/71> *

With respect to your #3 I would consider that an empty result since for 
search terms it is normal to have an explicit `AND` between them. Thus 
`q=id:4324 url:http://demo.almighty.io/#/detail/71` means it needs to 
match both terms which by definition is impossible - thus empty result.

>    4.
>    Free text search is supported only on workitem title and 
> description
>
>    /api/search/q:=*title:some title substring*+
> *description:some description substring *

Again, great if we can search on specific fields, but I would think we 
would want a higher level search that is "smart" about searching across 
various fields rather than explicit.

With respect to what field names we use - are these fields the "system" 
names or the field names that are on the type ? I reckon in the long run 
we need both ?

> 5.
>    The delimiter for multiple clauses ( we shall support "AND" now ) 
> will
>    be "+" . ( inspired from Github ) as already used above. We need to
>    consider situations where the string itself contains a "+" by 
> escaping them
>    properly.

+1

>    6. if the search query contains a mix of ID, URL , 
> title,description :
>    The order in which we are going to look for fields to make a 
> decision on
>    the search is:
>
>    1. URL
>    2. ID
>    3. title and description ( for free text search )

explicit AND is my expectation. No magic ordering in this.

/max

>    Let me know your thoughts :)
>
>    -
>    Shoubhik




/max
http://about.me/maxandersen
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://listman.redhat.com/archives/almighty-public/attachments/20161020/b8926c25/attachment.htm>


More information about the almighty-public mailing list