SearchResult.MatchInfo

public static final class SearchResult.MatchInfo
extends Object implements Parcelable

java.lang.Object
   ↳ android.app.appsearch.SearchResult.MatchInfo


This class represents match objects for any snippets that might be present in SearchResults from a query. Using this class, you can get:

  • the full text - all of the text in that String property
  • the exact term match - the 'term' (full word) that matched the query
  • the subterm match - the portion of the matched term that appears in the query
  • a suggested text snippet - a portion of the full text surrounding the exact term match, set to term boundaries. The size of the snippet is specified in SearchSpec.Builder.setMaxSnippetSize(int)
for each match in the document.

Class Example 1:

A document contains the following text in property "subject":

"A commonly used fake word is foo. Another nonsense word that\u2019s used a lot is bar."

If the queryExpression is "foo" and SearchSpec#getMaxSnippetSize is 10,

Class Example 2:

A document contains one property named "subject" and one property named "sender" which contains a "name" property.

In this case, we will have 2 property paths: sender.name and subject.

Let sender.name = "Test Name Jr." and subject = "Testing 1 2 3"

If the queryExpression is "Test" with SearchSpec#TERM_MATCH_PREFIX and SearchSpec.getMaxSnippetSize() is 10. We will have 2 matches:

Match-1

Match-2

Summary

Nested classes

class SearchResult.MatchInfo.Builder

Builder for MatchInfo objects. 

Inherited constants

Fields

public static final Creator<SearchResult.MatchInfo> CREATOR

Public methods

CharSequence getExactMatch()

Gets the exact term of the given entry that matched the query.

SearchResult.MatchRange getExactMatchRange()

Gets the MatchRange of the exact term of the given entry that matched the query.

String getFullText()

Gets the full text corresponding to the given entry.

String getPropertyPath()

Gets the property path corresponding to the given entry.

PropertyPath getPropertyPathObject()

Gets a PropertyPath object representing the property path corresponding to the given entry.

CharSequence getSnippet()

Gets the snippet corresponding to the given entry.

SearchResult.MatchRange getSnippetRange()

Gets the snippet MatchRange corresponding to the given entry.

CharSequence getSubmatch()

Gets the exact term subsequence of the given entry that matched the query.

SearchResult.MatchRange getSubmatchRange()

Gets the MatchRange of the exact term subsequence of the given entry that matched the query.

void writeToParcel(Parcel dest, int flags)

Flatten this object in to a Parcel.

Inherited methods

Fields

CREATOR

public static final Creator<SearchResult.MatchInfo> CREATOR

Public methods

getExactMatch

Added in API level 31
public CharSequence getExactMatch ()

Gets the exact term of the given entry that matched the query.

Class example 1: this returns "foo".

Class example 2: for the first MatchInfo, this returns "Test" and, for the second MatchInfo, this returns "Testing".

Returns
CharSequence This value cannot be null.

getExactMatchRange

Added in API level 31
public SearchResult.MatchRange getExactMatchRange ()

Gets the MatchRange of the exact term of the given entry that matched the query.

Class example 1: this returns [29, 32].

Class example 2: for the first MatchInfo, this returns [0, 4] and, for the second MatchInfo, this returns [0, 7].

Returns
SearchResult.MatchRange This value cannot be null.

getFullText

Added in API level 31
public String getFullText ()

Gets the full text corresponding to the given entry.

Class example 1: this returns "A commonly used fake word is foo. Another nonsense word that's used a lot is bar."

Class example 2: for the first MatchInfo, this returns "Test Name Jr." and, for the second MatchInfo, this returns "Testing 1 2 3".

Returns
String This value cannot be null.

getPropertyPath

Added in API level 31
public String getPropertyPath ()

Gets the property path corresponding to the given entry.

A property path is a '.' - delimited sequence of property names indicating which property in the document these snippets correspond to.

Example properties: 'body', 'sender.name', 'sender.emailaddress', etc. For class example 1 this returns "subject"

Returns
String This value cannot be null.

getPropertyPathObject

Added in API level 34
public PropertyPath getPropertyPathObject ()

Gets a PropertyPath object representing the property path corresponding to the given entry.

Methods such as GenericDocument#getPropertyDocument accept a path as a string rather than a PropertyPath object. However, you may want to manipulate the path before getting a property document. This method returns a PropertyPath rather than a String for easier path manipulation, which can then be converted to a String.

Returns
PropertyPath This value cannot be null.

getSnippet

Added in API level 31
public CharSequence getSnippet ()

Gets the snippet corresponding to the given entry.

Snippet - Provides a subset of the content to display. Only populated when requested maxSnippetSize > 0. The size of this content can be changed by SearchSpec.Builder.setMaxSnippetSize(int). Windowing is centered around the middle of the matched token with content on either side clipped to token boundaries.

Class example 1: this returns "foo. Another".

Class example 2: for the first MatchInfo, this returns "Test Name" and, for the second MatchInfo, this returns "Testing 1 2 3".

Returns
CharSequence This value cannot be null.

getSnippetRange

Added in API level 31
public SearchResult.MatchRange getSnippetRange ()

Gets the snippet MatchRange corresponding to the given entry.

Only populated when set maxSnippetSize > 0 in SearchSpec.Builder.setMaxSnippetSize(int).

Class example 1: this returns [29, 41].

Class example 2: for the first MatchInfo, this returns [0, 9] and, for the second MatchInfo, this returns [0, 13].

Returns
SearchResult.MatchRange This value cannot be null.

getSubmatch

Added in API level 33
public CharSequence getSubmatch ()

Gets the exact term subsequence of the given entry that matched the query.

Class example 1: this returns "foo".

Class example 2: for the first MatchInfo, this returns "Test" and, for the second MatchInfo, this returns "Test".

Returns
CharSequence This value cannot be null.

getSubmatchRange

Added in API level 33
public SearchResult.MatchRange getSubmatchRange ()

Gets the MatchRange of the exact term subsequence of the given entry that matched the query.

Class example 1: this returns [29, 32].

Class example 2: for the first MatchInfo, this returns [0, 4] and, for the second MatchInfo, this returns [0, 4].

Returns
SearchResult.MatchRange This value cannot be null.

writeToParcel

public void writeToParcel (Parcel dest, 
                int flags)

Flatten this object in to a Parcel.

Parameters
dest Parcel: This value cannot be null.

flags int: Additional flags about how the object should be written. May be 0 or Parcelable.PARCELABLE_WRITE_RETURN_VALUE. Value is either 0 or a combination of Parcelable.PARCELABLE_WRITE_RETURN_VALUE, and android.os.Parcelable.PARCELABLE_ELIDE_DUPLICATES