Class LabelsIndexer

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

public class LabelsIndexer extends BaseFieldIndexer
Responsible for adding fields to the Issue document being indexed.
Since:
4.2
  • Field Details

  • Constructor Details

  • Method Details

    • getId

      public String getId()
      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.
    • getDocumentFieldId

      public String getDocumentFieldId()
      Returns:
      the String representation of the primary field id that will be added to the Document as a result of a successful call to the FieldIndexer.addIndex(Document, Issue, CustomFieldPrefetchedData) method.
    • addIndex

      public void addIndex(org.apache.lucene.document.Document doc, Issue issue, CustomFieldPrefetchedData prefetchedData)
      Description copied from interface: FieldIndexer
      This method allows an indexer the opportunity to modify the provided Lucene document (by reference) such that it will contain fields that are relevant for searching and storage of the portion of the issue that the FieldIndexer handles.

      If calling FieldIndexer.isFieldVisibleAndInScope(com.atlassian.jira.issue.Issue) returns false then this method should create fields that have FieldType.stored() } property set to true. This allows us to store the value in the index but renders its value unsearchable.

      If, for example, the indexer handles indexing an issues summary then this indexer will add a field to the document 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 StringFields or DocValues will result in them being removed to prevent the indexing operation from crashing. This is a limitation of how Lucene stores terms and DocValues.

      Parameters:
      doc - the Lucene document that should be modified by adding relevant fields to.
      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>)