Class MisspellRewriter
java.lang.Object
com.yahoo.component.AbstractComponent
com.yahoo.component.chain.ChainedComponent
com.yahoo.processing.Processor
com.yahoo.search.Searcher
com.yahoo.search.query.rewrite.QueryRewriteSearcher
com.yahoo.search.query.rewrite.rewriters.MisspellRewriter
- All Implemented Interfaces:
com.yahoo.component.Component
,com.yahoo.component.Deconstructable
,Comparable<com.yahoo.component.Component>
This rewriter would retrieve spell corrected query from QLAS and
add it to the original query tree as equiv
- Features:
RewritesAsEquiv flag: add rewrites to original query as equiv
- Features:
RewritesAsEquiv flag: add rewrites to original query as equiv
- Author:
- Karen Sze Wing Lee
-
Field Summary
Fields inherited from class com.yahoo.search.query.rewrite.QueryRewriteSearcher
rewriterDicts
Fields inherited from class com.yahoo.component.AbstractComponent
isDeconstructable
-
Constructor Summary
ConstructorDescriptionConstructor for MisspellRewriter unit testMisspellRewriter
(com.yahoo.component.ComponentId id) Constructor for MisspellRewriter -
Method Summary
Modifier and TypeMethodDescriptionboolean
configure
(com.yahoo.filedistribution.fileacquirer.FileAcquirer fileAcquirer, RewritesConfig config, HashMap<String, File> fileList) Instance creation time config loading besides FSA.Get default FSA dictionary namesGet the name of the rewriterboolean
Get the flag which specifies whether this rewriter should be skipped if the query has been rewrittenMain logic of rewriter
- Retrieve spell corrected query from QLAS
- Add spell corrected query as equivMethods inherited from class com.yahoo.search.query.rewrite.QueryRewriteSearcher
getQPConfig, getRewriteFromFSA, search
Methods inherited from class com.yahoo.search.Searcher
ensureFilled, fill, getLogger, process, toString
Methods inherited from class com.yahoo.component.chain.ChainedComponent
getAnnotatedDependencies, getDefaultAnnotatedDependencies, getDependencies, initDependencies
Methods inherited from class com.yahoo.component.AbstractComponent
clone, compareTo, deconstruct, getClassName, getId, getIdString, hasInitializedId, initId, isDeconstructable, setIsDeconstructable
-
Field Details
-
REWRITER_NAME
- See Also:
-
-
Constructor Details
-
MisspellRewriter
@Inject public MisspellRewriter(com.yahoo.component.ComponentId id) Constructor for MisspellRewriter -
MisspellRewriter
public MisspellRewriter()Constructor for MisspellRewriter unit test
-
-
Method Details
-
configure
public boolean configure(com.yahoo.filedistribution.fileacquirer.FileAcquirer fileAcquirer, RewritesConfig config, HashMap<String, File> fileList) Instance creation time config loading besides FSA. Empty for this rewriter- Specified by:
configure
in classQueryRewriteSearcher
- Parameters:
fileAcquirer
- Required param for retrieving file type config (see vespa's search container doc for more detail)config
- Config from vespa-services.xml (see vespa's search container doc for more detail)fileList
- pairs of file name and file handler for unit tests- Returns:
- boolean true if loaded successfully, false otherwise
-
rewrite
Main logic of rewriter
- Retrieve spell corrected query from QLAS
- Add spell corrected query as equiv- Specified by:
rewrite
in classQueryRewriteSearcher
- Parameters:
query
- Query object from searcherdictKey
- the key passed from previous rewriter to be treated as "original query from user" For example, if previous is misspell rewriter, it would pass the corrected query as the "original query from user". For other rewriters which add variants, abbr, etc to the query, the original query should be passed as a key. This rewriter could still choose to ignore this key. This key is not the rewritten query itself. For example, if original query is (willl smith) and the rewritten query is (willl smith) OR (will smith) the key to be passed could be (will smith)- Returns:
- HashMap which contains the key value pairs:
- whether this query has been rewritten by this rewriter
key: rewritten
value: true or false
- the key to be treated as "original query from user" in next rewriter downstream, for example, misspell rewriter would pass the corrected query as the "original query from user" to the next rewriter. For other rewriters which add variants, abbr, etc to the query, the original query should be passed as a key. This key is not necessarily consumed by the next rewriter. The next rewriter can still choose to ignore this key.
key: newDictKey
value: new dict key - Throws:
RuntimeException
-
getSkipRewriterIfRewritten
public boolean getSkipRewriterIfRewritten()Get the flag which specifies whether this rewriter should be skipped if the query has been rewritten- Specified by:
getSkipRewriterIfRewritten
in classQueryRewriteSearcher
- Returns:
- true if rewriter should be skipped, false otherwise
-
getRewriterName
Get the name of the rewriter- Specified by:
getRewriterName
in classQueryRewriteSearcher
- Returns:
- Name of the rewriter
-
getDefaultFSAs
Get default FSA dictionary names- Specified by:
getDefaultFSAs
in classQueryRewriteSearcher
- Returns:
- Pair of FSA dictionary name and filename
-