Class Document

  • All Implemented Interfaces:
    Serializable
    Direct Known Subclasses:
    ScoredDocument

    public class Document
    extends Object
    implements Serializable
    Represents a user generated document. The following example shows how to create a document consisting of a set of fields, some with plain text and some in HTML; it also adds facets to the document.
    
        Document document = Document.newBuilder().setId("document id")
           .setLocale(Locale.UK)
           .addField(Field.newBuilder()
               .setName("subject")
               .setText("going for dinner"))
           .addField(Field.newBuilder()
               .setName("body")
               .setHTML("<html>I found a restaurant.</html>"))
           .addField(Field.newBuilder()
               .setName("signature")
               .setText("ten post jest przeznaczony dla odbiorcy")
               .setLocale(new Locale("pl")))
           .addFacet(Facet.withAtom("tag", "food"))
           .addFacet(Facet.withNumber("priority", 5.0))
           .build();
     
    The following example shows how to access the fields within a document:
    
        Document document = ...
    
        for (Field field : document.getFields()) {
          switch (field.getType()) {
            case TEXT: use(field.getText()); break;
            case HTML: use(field.getHtml()); break;
            case ATOM: use(field.getAtom()); break;
            case DATE: use(field.getDate()); break;
          }
        }
     
    And this example shows how to access the facets within a document:
    
        Document document = ...
    
        for (Facet facet : document.getFacets()) {
          switch (facet.getType()) {
            case ATOM:   use(facet.getAtom()); break;
            case NUMBER: use(facet.getNumber()); break;
          }
        }
     
    See Also:
    Serialized Form
    • Method Detail

      • getFields

        public Iterable<Field> getFields()
        Returns an iterable of Field in the document
      • getFacets

        public Iterable<Facet> getFacets()
        Returns an iterable of Facet in the document
      • getFieldNames

        public Set<String> getFieldNames()
        Returns an unmodifiable Set of the field names in the document
      • getFacetNames

        public Set<String> getFacetNames()
        Returns an unmodifiable Set of the facet names in the document
      • getFields

        public Iterable<Field> getFields​(String name)
        Returns an iterable of all fields with the given name.
        Parameters:
        name - the name of the field whose values are to be returned
        Returns:
        an unmodifiable Iterable of Field with the given name or null
      • getFacets

        public Iterable<Facet> getFacets​(String name)
        Returns an iterable of all facets with the given name.
        Parameters:
        name - the name of the facet whose values are to be returned
        Returns:
        an unmodifiable Iterable of Facet with the given name or null
      • getOnlyField

        public Field getOnlyField​(String name)
        Returns the single field with the given name.
        Parameters:
        name - the name of the field to return
        Returns:
        the single field with name
        Throws:
        IllegalArgumentException - if the document does not have exactly one field with the name
      • getOnlyFacet

        public Facet getOnlyFacet​(String name)
        Returns the single facet with the given name.
        Parameters:
        name - the name of the facet to return
        Returns:
        the single facet with name
        Throws:
        IllegalArgumentException - if the document does not have exactly one facet with the name
      • getFieldCount

        public int getFieldCount​(String name)
        Returns the number of times a field with the given name is present in this document.
        Parameters:
        name - the name of the field to be counted
        Returns:
        the number of times a field with the given name is present
      • getFacetCount

        public int getFacetCount​(String name)
        Returns the number of times a facet with the given name is present in this document.
        Parameters:
        name - the name of the facet to be counted
        Returns:
        the number of times a facet with the given name is present
      • getId

        public String getId()
        Returns:
        the id of the document
      • getLocale

        public Locale getLocale()
        Returns:
        the Locale the document is written in. Can be null
      • getRank

        public int getRank()
        Returns the rank of this document. A document's rank is used to determine the default order in which documents are returned by search, if no sorting or scoring is specified.
        Returns:
        the rank of this document
      • hashCode

        public int hashCode()
        Overrides:
        hashCode in class Object
      • newBuilder

        public static Document.Builder newBuilder()
        Creates a new document builder. You must use this method to obtain a new builder. The returned builder must be used to specify all properties of the document. To obtain the document call the Document.Builder.build() method on the returned builder.
        Returns:
        a builder which constructs a document object