AI-generated Key Takeaways
-
The SearchResult.MatchInfo class represents match objects for snippets in SearchResults from a query.
-
Using this class, you can retrieve information about the match such as the full text, the exact term matched, the subterm matched, and a suggested text snippet.
-
The size of the suggested text snippet can be controlled by the setMaxSnippetSize method in SearchSpec.Builder.
-
This class includes methods to get the matched text and their corresponding ranges within the original document text.
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)
Class Example 1:
A document contains the following text in property "subject":
"A commonly used fake word is foo. Another nonsense word that’s used a lot is bar."
If the queryExpression is "foo" and SearchSpec.getMaxSnippetSize()
is 10,
getPropertyPath()returns "subject"getFullText()returns "A commonly used fake word is foo. Another nonsense word that’s used a lot is bar."getExactMatchRange()returns [29, 32]getExactMatch()returns "foo"getSubmatchRange()returns [29, 32]getSubmatch()returns "foo"getSnippetRange()returns [26, 33]getSnippet()returns "is foo."
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
getPropertyPath()returns "sender.name"getFullText()returns "Test Name Jr."getExactMatchRange()returns [0, 4]getExactMatch()returns "Test"getSubmatchRange()returns [0, 4]getSubmatch()returns "Test"getSnippetRange()returns [0, 9]getSnippet()returns "Test Name"
Match-2
getPropertyPath()returns "subject"getFullText()returns "Testing 1 2 3"getExactMatchRange()returns [0, 7]getExactMatch()returns "Testing"getSubmatchRange()returns [0, 4]getSubmatch()returns "Test"getSnippetRange()returns [0, 9]getSnippet()returns "Testing 1"
Nested Class Summary
| class | SearchResult.MatchInfo.Builder | Builder for SearchResult.MatchInfo
objects. |
|
Inherited Constant Summary
Field Summary
| public static final Creator<SearchResult.MatchInfo> | CREATOR |
Public Method Summary
| CharSequence |
getExactMatch()
Gets the exact term of the given entry that matched the query.
|
| SearchResult.MatchRange |
getExactMatchRange()
Gets the
SearchResult.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
SearchResult.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
SearchResult.MatchRange of the exact term subsequence of the given
entry that matched the query.
|
| void |
writeToParcel(Parcel dest, int
flags)
|
Inherited Method Summary
Fields
public static final Creator<SearchResult.MatchInfo> CREATOR
Public Methods
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 SearchResult.MatchInfo,
this returns "Test" and, for the second SearchResult.MatchInfo,
this returns "Testing".
public SearchResult.MatchRange getExactMatchRange ()
Gets the SearchResult.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 SearchResult.MatchInfo,
this returns [0, 4] and, for the second SearchResult.MatchInfo,
this returns [0, 7].
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 SearchResult.MatchInfo,
this returns "Test Name Jr." and, for the second SearchResult.MatchInfo,
this returns "Testing 1 2 3".
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"
public PropertyPath getPropertyPathObject ()
Gets a PropertyPath
object representing the property path corresponding to the given entry.
Methods such as
GenericDocument.getPropertyDocument(String) 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.
See Also
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 SearchResult.MatchInfo,
this returns "Test Name" and, for the second SearchResult.MatchInfo,
this returns "Testing 1 2 3".
public SearchResult.MatchRange getSnippetRange ()
Gets the snippet SearchResult.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 SearchResult.MatchInfo,
this returns [0, 9] and, for the second SearchResult.MatchInfo,
this returns [0, 13].
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 SearchResult.MatchInfo,
this returns "Test" and, for the second SearchResult.MatchInfo,
this returns "Test".
public SearchResult.MatchRange getSubmatchRange ()
Gets the SearchResult.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 SearchResult.MatchInfo,
this returns [0, 4] and, for the second SearchResult.MatchInfo,
this returns [0, 4].