Adaptivist Scriptrunner CQL

Victor Prasad June 26, 2020

Hello,

I am looking to create a user macro that allows this cql query

Skype AND (spacekey:SVCCAT or spacekey:ICS or spacekey:APPCAT)

 

But have the search term variable, so instead of typing 'Skype', and term can be used, and it will return results based on the 3 spaces I have listed.

Search Box gives a choice of 1 of the 3 spaces per search, but not all.

Can the CQL custom scriptrunner option do this?

Thoughts?

Thanks,

 

V

1 comment

Davin Studer
Rising Star
Rising Star
Rising Stars are recognized for providing high-quality answers to other users. Rising Stars receive a certificate of achievement and are on the path to becoming Community Leaders.
June 26, 2020

This is a pretty simple way to do it by wrapping the search results macro.

Macro Name:
custom_search

Macro Title:
Custom Search

Macro Body Processing:
No macro body

Template:

## Developed by: Davin Studer
## Date created: 06/26/2020
## @noparams

<form class="aui" method="GET" action="">
    <input id="q" name="q" type="text" class="text" placeholder="" /> <button class="button">Search</button>
</form>

#set($q = $req.getParameter('q'))
#if($q && $q != "")
<p>
  <ac:structured-macro ac:name="search" ac:schema-version="1">
    <ac:parameter ac:name="maxLimit">100000</ac:parameter>
    <ac:parameter ac:name="query">($q) AND (spacekey:SVCCAT OR spacekey:ICS OR spacekey:APPCAT)</ac:parameter>
  </ac:structured-macro>
</p>
#end
Victor Prasad July 7, 2020

oh wow!

 

Thank you Thank you Thank you!

I have never made a macro before...

Like Davin Studer likes this
Victor Prasad July 7, 2020

Did I forget to say

 

WOW!!!!

Like Davin Studer likes this
Davin Studer
Rising Star
Rising Star
Rising Stars are recognized for providing high-quality answers to other users. Rising Stars receive a certificate of achievement and are on the path to becoming Community Leaders.
July 7, 2020

Glad it helped.

Victor Prasad July 9, 2020

It really did, super handy!

Is there a library or site of what others have done the Adaptivist ScriptRunner.  I am sure people have done crazy things!

 

Thanks again!

Victor Prasad July 10, 2020

The search sorts by relevance, can I change that by date modified?  not sure of the syntax

Davin Studer
Rising Star
Rising Star
Rising Stars are recognized for providing high-quality answers to other users. Rising Stars receive a certificate of achievement and are on the path to becoming Community Leaders.
July 13, 2020

Try this for descending ...

<ac:parameter ac:name="query">($q) AND (spacekey:SVCCAT OR spacekey:ICS OR spacekey:APPCAT) order by lastmodified desc</ac:parameter>

... or this for ascending.

<ac:parameter ac:name="query">($q) AND (spacekey:SVCCAT OR spacekey:ICS OR spacekey:APPCAT) order by lastmodified asc</ac:parameter>

https://developer.atlassian.com/server/confluence/advanced-searching-using-cql/#order-by

Victor Prasad July 13, 2020

Hi Davin,

That makes sense, however when I added the order by, I get zero results:

 

Found 0 search result(s) for (skype) AND (spacekey:SVCCAT OR spacekey:ICS OR spacekey:APPCAT) order by lastmodified desc.

 

This is the macro content when I get zero results:

## Developed by: Davin Studer

## Date created: 06/26/2020

## @noparams

 

<form class="aui" method="GET" action="">

    <input id="q" name="q" type="text" class="text" placeholder="" /> <button class="button">Search</button>

</form>

 

#set($q = $req.getParameter('q'))

#if($q && $q != "")

<p>

  <ac:structured-macro ac:name="search" ac:schema-version="1">

    <ac:parameter ac:name="maxLimit">100000</ac:parameter>

    <ac:parameter ac:name="query">($q) AND (spacekey:SVCCAT OR spacekey:ICS OR spacekey:APPCAT) order by lastmodified desc</ac:parameter>

</ac:structured-macro>

</p>

#end

 

But this works fine

 

## Developed by: Davin Studer

## Date created: 06/26/2020

## @noparams

 

<form class="aui" method="GET" action="">

    <input id="q" name="q" type="text" class="text" placeholder="" /> <button class="button">Search</button>

</form>

 

#set($q = $req.getParameter('q'))

#if($q && $q != "")

<p>

  <ac:structured-macro ac:name="search" ac:schema-version="1">

    <ac:parameter ac:name="maxLimit">100000</ac:parameter>

   <ac:parameter ac:name="query">($q) AND (spacekey:SVCCAT OR spacekey:ICS OR spacekey:APPCAT)</ac:parameter>

</ac:structured-macro>

</p>

#end

 

Which worked:

Found 67 search result(s) for (skype) AND (spacekey:SVCCAT OR spacekey:ICS OR spacekey:APPCAT).

 

Would I have to restart the Confluence Service?  Clear caches?

 

I do appreciate you help and expertise - thank for responding!

 

V

Davin Studer
Rising Star
Rising Star
Rising Stars are recognized for providing high-quality answers to other users. Rising Stars receive a certificate of achievement and are on the path to becoming Community Leaders.
July 16, 2020

Sorry, I forgot that the search results macro doesn't use CQL. It uses Lucene search syntax. Lucene, to my knowledge, does not have anything in the search syntax to specify the order.

Victor Prasad July 16, 2020

Oh, i see!!!

 

Learned something new!  

 

Thanks again!

Comment

Log in or Sign up to comment
TAGS
AUG Leaders

Atlassian Community Events