Using "filter !=" could cause performance issue

XMLWordPrintable

    • 5.02
    • 4
    • Severity 3 - Minor
    • 0

      When using the keyword "filter" with the "no equals" operator, the search is really slow as the lucene query is not optimized:

      Here is an example by using a simple JQL project = "TERT" saved as a filter call momo:

      2013-09-11 14:36:43,168 http-bio-8090-exec-20 DEBUG admin 876x929x3 1ius91j 127.0.0.1 /rest/issueNav/1/issueTable/ [issue.search.providers.LuceneSearchProvider] Creating new CachedWrappedFilterCache
      2013-09-11 14:36:43,180 http-bio-8090-exec-20 DEBUG admin 876x929x3 1ius91j 127.0.0.1 /rest/issueNav/1/issueTable/ [issue.search.providers.LuceneSearchProvider] JQL query: {project = "TEST"}
      2013-09-11 14:36:43,180 http-bio-8090-exec-20 DEBUG admin 876x929x3 1ius91j 127.0.0.1 /rest/issueNav/1/issueTable/ [issue.search.providers.LuceneSearchProvider] JQL lucene query: projid:10000
      2013-09-11 14:36:43,180 http-bio-8090-exec-20 DEBUG admin 876x929x3 1ius91j 127.0.0.1 /rest/issueNav/1/issueTable/ [issue.search.providers.LuceneSearchProvider] JQL sorts: [<custom:"projkey": com.atlassian.jira.issue.search.parameters.lucene.sort.StringSortComparator@4fb78b02>!, <custom:"keynumpart_range": com.atlassian.jira.issue.search.parameters.lucene.sort.StringSortComparator@1b075931>!]
      2013-09-11 14:36:43,180 http-bio-8090-exec-20 DEBUG admin 876x929x3 1ius91j 127.0.0.1 /rest/issueNav/1/issueTable/ [issue.search.providers.LuceneSearchProvider] Lucene boolean Query:projid:10000
      
      ======================================================================================================================================================================================
      2013-09-11 14:36:54,708 http-bio-8090-exec-20 DEBUG admin 876x932x1 1ius91j 127.0.0.1 /rest/issueNav/1/issueTable/ [issue.search.providers.LuceneSearchProvider] Creating new CachedWrappedFilterCache
      2013-09-11 14:36:54,718 http-bio-8090-exec-20 DEBUG admin 876x932x1 1ius91j 127.0.0.1 /rest/issueNav/1/issueTable/ [issue.search.providers.LuceneSearchProvider] JQL query: {filter = "momo"}
      2013-09-11 14:36:54,718 http-bio-8090-exec-20 DEBUG admin 876x932x1 1ius91j 127.0.0.1 /rest/issueNav/1/issueTable/ [issue.search.providers.LuceneSearchProvider] JQL lucene query: projid:10000
      2013-09-11 14:36:54,718 http-bio-8090-exec-20 DEBUG admin 876x932x1 1ius91j 127.0.0.1 /rest/issueNav/1/issueTable/ [issue.search.providers.LuceneSearchProvider] JQL sorts: [<custom:"projkey": com.atlassian.jira.issue.search.parameters.lucene.sort.StringSortComparator@741f70ef>!, <custom:"keynumpart_range": com.atlassian.jira.issue.search.parameters.lucene.sort.StringSortComparator@3c2f9678>!]
      2013-09-11 14:36:54,719 http-bio-8090-exec-20 DEBUG admin 876x932x1 1ius91j 127.0.0.1 /rest/issueNav/1/issueTable/ [issue.search.providers.LuceneSearchProvider] Lucene boolean Query:projid:10000
      
      ======================================================================================================================================================================================
      2013-09-11 14:37:09,713 http-bio-8090-exec-20 DEBUG admin 877x935x1 1ius91j 127.0.0.1 /rest/issueNav/1/issueTable/ [issue.search.providers.LuceneSearchProvider] Creating new CachedWrappedFilterCache
      2013-09-11 14:37:09,721 http-bio-8090-exec-20 DEBUG admin 877x935x1 1ius91j 127.0.0.1 /rest/issueNav/1/issueTable/ [issue.search.providers.LuceneSearchProvider] JQL query: {filter != "momo"}
      2013-09-11 14:37:09,721 http-bio-8090-exec-20 DEBUG admin 877x935x1 1ius91j 127.0.0.1 /rest/issueNav/1/issueTable/ [issue.search.providers.LuceneSearchProvider] JQL lucene query: +*:* -projid:10000
      2013-09-11 14:37:09,721 http-bio-8090-exec-20 DEBUG admin 877x935x1 1ius91j 127.0.0.1 /rest/issueNav/1/issueTable/ [issue.search.providers.LuceneSearchProvider] JQL sorts: [<custom:"projkey": com.atlassian.jira.issue.search.parameters.lucene.sort.StringSortComparator@10cb43ae>!, <custom:"keynumpart_range": com.atlassian.jira.issue.search.parameters.lucene.sort.StringSortComparator@10c85d1f>!]
      2013-09-11 14:37:09,721 http-bio-8090-exec-20 DEBUG admin 877x935x1 1ius91j 127.0.0.1 /rest/issueNav/1/issueTable/ [issue.search.providers.LuceneSearchProvider] Lucene boolean Query:+*:* -projid:10000
      
      ======================================================================================================================================================================================
      2013-09-11 14:37:46,073 http-bio-8090-exec-6 DEBUG admin 877x940x1 1ius91j 127.0.0.1 /rest/issueNav/1/issueTable/ [issue.search.providers.LuceneSearchProvider] Creating new CachedWrappedFilterCache
      2013-09-11 14:37:46,079 http-bio-8090-exec-6 DEBUG admin 877x940x1 1ius91j 127.0.0.1 /rest/issueNav/1/issueTable/ [issue.search.providers.LuceneSearchProvider] JQL query: {project != "TEST"}
      2013-09-11 14:37:46,079 http-bio-8090-exec-6 DEBUG admin 877x940x1 1ius91j 127.0.0.1 /rest/issueNav/1/issueTable/ [issue.search.providers.LuceneSearchProvider] JQL lucene query: +nonemptyfieldids:projid -projid:10000 +visiblefieldids:projid
      2013-09-11 14:37:46,079 http-bio-8090-exec-6 DEBUG admin 877x940x1 1ius91j 127.0.0.1 /rest/issueNav/1/issueTable/ [issue.search.providers.LuceneSearchProvider] JQL sorts: [<custom:"projkey": com.atlassian.jira.issue.search.parameters.lucene.sort.StringSortComparator@3f265a83>!, <custom:"keynumpart_range": com.atlassian.jira.issue.search.parameters.lucene.sort.StringSortComparator@6f006ed8>!]
      

      It seems that when using "filter !=" the lucene query will be like :

      JQL lucene query: +*:* -projid:10000
      

      which need to found everything then remove the related project, which will be slow when having a huge number of issues.

              Assignee:
              Unassigned
              Reporter:
              Yilin (Inactive)
              Votes:
              3 Vote for this issue
              Watchers:
              4 Start watching this issue

                Created:
                Updated: