Interface RelevancyModelApi
-
- All Superinterfaces:
ExposedApi
- All Known Implementing Classes:
MockRelevancyModelApi
public interface RelevancyModelApi extends ExposedApi
API for interacting with relevancy models in the system.
-
-
Field Summary
Fields Modifier and Type Field Description static java.lang.StringDEFAULT_RELEVANCY_MODEL_NAMEName for default relevancy model.static java.lang.StringNOOP_RELEVANCY_MODEL_NAMEName for relevancy model that does nothing.
-
Method Summary
All Methods Instance Methods Abstract Methods Modifier and Type Method Description voidaddFeature(RelevancyFeatureDef feature)Add aRelevancyFeatureDef.longaddRelevancyModel(RelevancyModel model)Create a new relevancy model.voiddeleteFeature(java.lang.String name)Delete aRelevancyFeatureDefwith the specified name.voiddeleteRelevancyModel(java.lang.String name, long version)Delete a relevancy model.RelevancyModelfindRelevancyModel(java.lang.String... query)Find a relevancy model given a query.RelevancyFeatureDefgetFeature(java.lang.String name)Get aRelevancyFeatureDefbyname.java.lang.Iterable<RelevancyFeatureDef>getFeatures()Get all features.RelevancyModelgetRelevancyModel(java.lang.String name, long version)Get a specified version of a relevancy model.java.util.List<java.lang.String>getRelevancyModelNames()Returns the names for all available relevancy models.longgetRelevancyModelPublishTime(java.lang.String name, long version)Returns the time the specified relevancy model was published.java.util.List<RelevancyModel>getRelevancyModels(java.lang.String name)Get all versions available for a relevancy model.booleanisFeatureStatic(java.lang.String name)Returnstrueif feature is statically defined.voidpublishRelevancyModel(java.lang.String name, long version)Publish a relevancy model.RelevancyModeltestRelevancyModel(RelevancyModel model)Test a relevancy model's accuracy according to stored signal data's expected output.longtrainRelevancyModel(RelevancyModel model)Train a relevancy model according to signal data as specified bymodelvoidupdateFeature(RelevancyFeatureDef feature)Update aRelevancyFeatureDef.voidupdateRelevancyModel(RelevancyModel model)Update an existing relevancy model.
-
-
-
Field Detail
-
DEFAULT_RELEVANCY_MODEL_NAME
static final java.lang.String DEFAULT_RELEVANCY_MODEL_NAME
Name for default relevancy model.- See Also:
- Constant Field Values
-
NOOP_RELEVANCY_MODEL_NAME
static final java.lang.String NOOP_RELEVANCY_MODEL_NAME
Name for relevancy model that does nothing.- See Also:
- Constant Field Values
-
-
Method Detail
-
getFeatures
java.lang.Iterable<RelevancyFeatureDef> getFeatures()
Get all features.Order of returned features is undefined. Returned features should not be modified in any way.
-
getFeature
RelevancyFeatureDef getFeature(java.lang.String name)
-
addFeature
void addFeature(RelevancyFeatureDef feature)
Add aRelevancyFeatureDef.- Throws:
java.lang.IllegalArgumentException- iffeatureisnull.java.lang.IllegalStateException- if feature with the same name already exists.
-
updateFeature
void updateFeature(RelevancyFeatureDef feature)
Update aRelevancyFeatureDef.- Throws:
java.lang.IllegalArgumentException- iffeatureisnull.java.lang.IllegalStateException- iffeaturedoes not exist.java.lang.IllegalStateException- if the feature is statically defined.
-
deleteFeature
void deleteFeature(java.lang.String name)
Delete aRelevancyFeatureDefwith the specified name.- Throws:
java.lang.IllegalArgumentException- ifnameis null.java.lang.IllegalStateException- if the feature does not exist.java.lang.IllegalStateException- if the feature is statically defined.
-
isFeatureStatic
boolean isFeatureStatic(java.lang.String name)
Returnstrueif feature is statically defined.Statically defined features cannot be updated or deleted.
-
getRelevancyModelNames
java.util.List<java.lang.String> getRelevancyModelNames()
Returns the names for all available relevancy models.
-
findRelevancyModel
RelevancyModel findRelevancyModel(java.lang.String... query)
Find a relevancy model given a query.Relevancy model names are matched case insensitive.
Returns the first available model specified in
query.Query strings may include a version component in the format modelName#versionNumber to request a specific version. When version is not specified, the relevancy model returned will be the active version for the requested name.
Returns
nullif no matching relevancy model found.
-
getRelevancyModel
RelevancyModel getRelevancyModel(java.lang.String name, long version)
Get a specified version of a relevancy model.Returns
nullif relevancy model does not exist.
-
getRelevancyModels
java.util.List<RelevancyModel> getRelevancyModels(java.lang.String name)
Get all versions available for a relevancy model.
-
addRelevancyModel
long addRelevancyModel(RelevancyModel model)
Create a new relevancy model.Returns the version number for the newly created relevancy model.
-
updateRelevancyModel
void updateRelevancyModel(RelevancyModel model)
Update an existing relevancy model.Fails if relevancy model does not exist, or if the relevancy model is active.
-
deleteRelevancyModel
void deleteRelevancyModel(java.lang.String name, long version)Delete a relevancy model.Fails if relevancy model does not exist, if the relevancy model's source is
RelevancyModel.Source.STATICor if the model is active.
-
trainRelevancyModel
long trainRelevancyModel(RelevancyModel model)
Train a relevancy model according to signal data as specified bymodelReturns the version number for the newly created relevancy model.
Relevancy model created will initially have a source of
RelevancyModel.Source.TRAINING. Once training of the relevancy model is complete, the source will be updated to beRelevancyModel.Source.TRAINED.
-
testRelevancyModel
RelevancyModel testRelevancyModel(RelevancyModel model) throws java.io.IOException
Test a relevancy model's accuracy according to stored signal data's expected output.Computing accuracy may take some time, depending on the volume of signal data being used.
NOTE:
modeldoes not need to be a saved relevancy model. For instance, you can test the relevancy model prior to adding/updating a model with new weights.- Parameters:
model- A model to evaluate.- Returns:
- A model with the accuracy populated according to specified signal data
- Throws:
java.io.IOException
-
publishRelevancyModel
void publishRelevancyModel(java.lang.String name, long version)Publish a relevancy model.Published relevancy models will be used for matching partial relevancy model names in
getRelevancyModel(String, long).Fails if relevancy model does not exist.
-
getRelevancyModelPublishTime
long getRelevancyModelPublishTime(java.lang.String name, long version)Returns the time the specified relevancy model was published.Returns
0if the relevancy model is not the published model. Returns-1if the model is the published model, but no time is associated with the publication.
-
-