Class ProjectIdIndexer

java.lang.Object
com.atlassian.jira.search.issue.index.indexers.impl.ProjectIdIndexer
All Implemented Interfaces:
FieldIndexer

public class ProjectIdIndexer extends Object implements FieldIndexer
Note: replaces ProjectIdIndexer
  • Constructor Details

    • ProjectIdIndexer

      public ProjectIdIndexer()
  • Method Details

    • getId

      public String getId()
      Specified by:
      getId in interface FieldIndexer
      Returns:
      the String representation of the field id that this indexer is indexing, this must be unique for each independent FieldIndexer. If the Indexer does not represent a System or Custom field in Jira this should still return a unique string that describes the indexer.
    • getFields

      public Collection<Field> getFields()
      Description copied from interface: FieldIndexer
      Declares the fields to be added to the index schema
      Specified by:
      getFields in interface FieldIndexer
    • indexFields

      public void indexFields(FieldValueCollector collector, Issue issue, CustomFieldPrefetchedData prefetchedData)
      Description copied from interface: FieldIndexer
      This method allows an indexer the opportunity to add values to the provided collector that are relevant for searching and storage of the portion of the issue that the FieldIndexer handles.

      If, for example, the indexer handles indexing an issues summary then this indexer will add a field value to the collector that represents the stored and searchable summary of the issue.

      Note that trying to index very large (i.e. larger than ~32 kB) fields as KeywordField will result in them being removed to prevent the indexing operation from crashing. This is a limitation of how OpenSearch and Lucene store terms.

      Specified by:
      indexFields in interface FieldIndexer
      Parameters:
      collector - the collector for collecting indexed values
      issue - the issue that contains the data that will be indexed and which can be used to determine the project/issue type context that will allow you to determine if we should add the value as searchable or unsearchable.
      prefetchedData - if the custom field type implemented CustomFieldType.getNonNullCustomFieldProvider() this reference will hold the matching value returned from NonNullCustomFieldProvider.getCustomFieldInfo(List <Issue>)
    • isFieldVisibleAndInScope

      public boolean isFieldVisibleAndInScope(Issue issue)
      Description copied from interface: FieldIndexer
      This method is used to determine if the indexer is relevant for the provided issue. This method must check the fields visibility, in relation to the field configuration scheme, must check any global flags that would enable or disable a field (such as enable votes flag), and must check, if the field is a custom field, if the custom field is relevant for this issue.

      All these checks should take into account the IssueContext as defined by the passed in issue.

      The result of this method is used to determine the correct values that should be returned when performing an empty search.

      Specified by:
      isFieldVisibleAndInScope in interface FieldIndexer
      Parameters:
      issue - that is having a document created from.
      Returns:
      if true then this field is relevant for the issue, otherwise it is not.