Search in sources :

Example 31 with QueryProfileRegistry

use of com.yahoo.search.query.profile.QueryProfileRegistry in project vespa by vespa-engine.

the class PatchMatchingTestCase method testPatchMatchingVersions.

/**
 * Check that the path matching works with versioned profiles
 */
public void testPatchMatchingVersions() {
    QueryProfileType type = new QueryProfileType("type");
    type.setMatchAsPath(true);
    QueryProfile a = new QueryProfile("a");
    a.setType(type);
    QueryProfile abee11 = new QueryProfile("a/bee:1.1");
    abee11.setType(type);
    abee11.addInherited(a);
    QueryProfile abee13 = new QueryProfile("a/bee:1.3");
    abee13.setType(type);
    abee13.addInherited(a);
    QueryProfile abeece = new QueryProfile("a/bee/ce");
    abeece.setType(type);
    abeece.addInherited(abee13);
    QueryProfileRegistry registry = new QueryProfileRegistry();
    registry.register(a);
    registry.register(abee11);
    registry.register(abee13);
    registry.register(abeece);
    registry.freeze();
    // No "default" registered
    assertNull(registry.findQueryProfile(null));
    assertEquals("a", registry.findQueryProfile("a").getId().getName());
    assertEquals("a/bee:1.1", registry.findQueryProfile("a/bee:1.1").getId().toString());
    assertEquals("a/bee:1.3", registry.findQueryProfile("a/bee").getId().toString());
    assertEquals("a/bee:1.3", registry.findQueryProfile("a/bee:1").getId().toString());
    assertEquals("a/bee/ce", registry.findQueryProfile("a/bee/ce").getId().getName());
    assertEquals("a/bee/ce", registry.findQueryProfile("a/bee/ce/dee").getId().getName());
    assertEquals("a/bee/ce", registry.findQueryProfile("a/bee/ce/dee/eee/").getId().getName());
    assertEquals("a/bee:1.1", registry.findQueryProfile("a/bee/cede:1.1").getId().toString());
    assertEquals("a/bee:1.3", registry.findQueryProfile("a/bee/cede").getId().toString());
    assertEquals("a/bee:1.3", registry.findQueryProfile("a/bee/cede:1").getId().toString());
    assertEquals("a", registry.findQueryProfile("a/foo/bee/cede").getId().getName());
    assertNull(registry.findQueryProfile("abee"));
}
Also used : QueryProfile(com.yahoo.search.query.profile.QueryProfile) QueryProfileRegistry(com.yahoo.search.query.profile.QueryProfileRegistry) QueryProfileType(com.yahoo.search.query.profile.types.QueryProfileType)

Example 32 with QueryProfileRegistry

use of com.yahoo.search.query.profile.QueryProfileRegistry in project vespa by vespa-engine.

the class PatchMatchingTestCase method testQuirkyNames.

public void testQuirkyNames() {
    QueryProfileType type = new QueryProfileType("type");
    type.setMatchAsPath(true);
    QueryProfile a = new QueryProfile("/a");
    a.setType(type);
    QueryProfile abee = new QueryProfile("/a//bee");
    abee.setType(type);
    abee.addInherited(a);
    QueryProfile abeece = new QueryProfile("/a//bee/ce/");
    abeece.setType(type);
    abeece.addInherited(abee);
    QueryProfileRegistry registry = new QueryProfileRegistry();
    registry.register(a);
    registry.register(abee);
    registry.register(abeece);
    registry.freeze();
    // No "default" registered
    assertNull(registry.findQueryProfile(null));
    assertEquals("/a", registry.findQueryProfile("/a").getId().getName());
    assertNull(registry.findQueryProfile("a"));
    assertEquals("/a//bee", registry.findQueryProfile("/a//bee").getId().getName());
    assertEquals("/a//bee/ce/", registry.findQueryProfile("/a//bee/ce/").getId().getName());
    assertEquals("/a//bee/ce/", registry.findQueryProfile("/a//bee/ce").getId().getName());
    assertEquals("/a//bee/ce/", registry.findQueryProfile("/a//bee/ce/dee").getId().getName());
    assertEquals("/a//bee/ce/", registry.findQueryProfile("/a//bee/ce/dee/eee/").getId().getName());
    assertEquals("/a//bee", registry.findQueryProfile("/a//bee/cede").getId().getName());
    assertEquals("/a", registry.findQueryProfile("/a/foo/bee/cede").getId().getName());
    assertEquals("/a", registry.findQueryProfile("/a/bee").getId().getName());
    assertNull(registry.findQueryProfile("abee"));
}
Also used : QueryProfile(com.yahoo.search.query.profile.QueryProfile) QueryProfileRegistry(com.yahoo.search.query.profile.QueryProfileRegistry) QueryProfileType(com.yahoo.search.query.profile.types.QueryProfileType)

Example 33 with QueryProfileRegistry

use of com.yahoo.search.query.profile.QueryProfileRegistry in project vespa by vespa-engine.

the class PatchMatchingTestCase method testPatchMatching.

public void testPatchMatching() {
    QueryProfileType type = new QueryProfileType("type");
    type.setMatchAsPath(true);
    QueryProfile a = new QueryProfile("a");
    a.setType(type);
    QueryProfile abee = new QueryProfile("a/bee");
    abee.setType(type);
    abee.addInherited(a);
    QueryProfile abeece = new QueryProfile("a/bee/ce");
    abeece.setType(type);
    abeece.addInherited(abee);
    QueryProfileRegistry registry = new QueryProfileRegistry();
    registry.register(a);
    registry.register(abee);
    registry.register(abeece);
    registry.freeze();
    // No "default" registered
    assertNull(registry.findQueryProfile(null));
    assertEquals("a", registry.findQueryProfile("a").getId().getName());
    assertEquals("a/bee", registry.findQueryProfile("a/bee").getId().getName());
    assertEquals("a/bee/ce", registry.findQueryProfile("a/bee/ce").getId().getName());
    assertEquals("a/bee/ce", registry.findQueryProfile("a/bee/ce/dee").getId().getName());
    assertEquals("a/bee/ce", registry.findQueryProfile("a/bee/ce/dee/eee/").getId().getName());
    assertEquals("a/bee", registry.findQueryProfile("a/bee/cede").getId().getName());
    assertEquals("a", registry.findQueryProfile("a/foo/bee/cede").getId().getName());
    assertNull(registry.findQueryProfile("abee"));
}
Also used : QueryProfile(com.yahoo.search.query.profile.QueryProfile) QueryProfileRegistry(com.yahoo.search.query.profile.QueryProfileRegistry) QueryProfileType(com.yahoo.search.query.profile.types.QueryProfileType)

Example 34 with QueryProfileRegistry

use of com.yahoo.search.query.profile.QueryProfileRegistry in project vespa by vespa-engine.

the class PatchMatchingTestCase method testNoPatchMatching.

public void testNoPatchMatching() {
    QueryProfileType type = new QueryProfileType("type");
    // Default, but set here for clarity
    type.setMatchAsPath(false);
    QueryProfile a = new QueryProfile("a");
    a.setType(type);
    QueryProfile abee = new QueryProfile("a/bee");
    abee.setType(type);
    abee.addInherited(a);
    QueryProfile abeece = new QueryProfile("a/bee/ce");
    abeece.setType(type);
    abeece.addInherited(abee);
    QueryProfileRegistry registry = new QueryProfileRegistry();
    registry.register(a);
    registry.register(abee);
    registry.register(abeece);
    registry.freeze();
    // No "default" registered
    assertNull(registry.findQueryProfile(null));
    assertEquals("a", registry.findQueryProfile("a").getId().getName());
    assertEquals("a/bee", registry.findQueryProfile("a/bee").getId().getName());
    assertEquals("a/bee/ce", registry.findQueryProfile("a/bee/ce").getId().getName());
    // Different from test above
    assertNull(registry.findQueryProfile("a/bee/ce/dee"));
    // Different from test above
    assertNull(registry.findQueryProfile("a/bee/ce/dee/eee/"));
    // Different from test above
    assertNull(registry.findQueryProfile("a/bee/cede"));
    // Different from test above
    assertNull(registry.findQueryProfile("a/foo/bee/cede"));
    assertNull(registry.findQueryProfile("abee"));
}
Also used : QueryProfile(com.yahoo.search.query.profile.QueryProfile) QueryProfileRegistry(com.yahoo.search.query.profile.QueryProfileRegistry) QueryProfileType(com.yahoo.search.query.profile.types.QueryProfileType)

Example 35 with QueryProfileRegistry

use of com.yahoo.search.query.profile.QueryProfileRegistry in project vespa by vespa-engine.

the class QueryProfileTypeTestCase method testTypedOverridingOfQueryProfileReferencesNonStrictThroughQuery.

/**
 * Tests overriding a subprofile as an id string through the query.
 * Here there exists a user profile already, and then a new one is overwritten
 */
public void testTypedOverridingOfQueryProfileReferencesNonStrictThroughQuery() {
    QueryProfile profile = new QueryProfile("test");
    profile.setType(type);
    QueryProfile myUser = new QueryProfile("myUser");
    myUser.setType(user);
    myUser.set("myUserString", "userValue1", registry);
    myUser.set("myUserInteger", 442, registry);
    QueryProfile newUser = new QueryProfile("newUser");
    newUser.setType(user);
    newUser.set("myUserString", "newUserValue1", registry);
    newUser.set("myUserInteger", 845, registry);
    QueryProfileRegistry registry = new QueryProfileRegistry();
    registry.register(profile);
    registry.register(myUser);
    registry.register(newUser);
    CompiledQueryProfileRegistry cRegistry = registry.compile();
    CompiledQueryProfile cprofile = cRegistry.getComponent("test");
    Query query = new Query(HttpRequest.createTestRequest("?myUserQueryProfile=newUser", com.yahoo.jdisc.http.HttpRequest.Method.GET), cprofile);
    assertEquals(0, query.errors().size());
    assertEquals("newUserValue1", query.properties().get("myUserQueryProfile.myUserString"));
    assertEquals(845, query.properties().get("myUserQueryProfile.myUserInteger"));
}
Also used : CompiledQueryProfile(com.yahoo.search.query.profile.compiled.CompiledQueryProfile) QueryProfile(com.yahoo.search.query.profile.QueryProfile) CompiledQueryProfileRegistry(com.yahoo.search.query.profile.compiled.CompiledQueryProfileRegistry) CompiledQueryProfile(com.yahoo.search.query.profile.compiled.CompiledQueryProfile) Query(com.yahoo.search.Query) QueryProfileRegistry(com.yahoo.search.query.profile.QueryProfileRegistry) CompiledQueryProfileRegistry(com.yahoo.search.query.profile.compiled.CompiledQueryProfileRegistry)

Aggregations

QueryProfileRegistry (com.yahoo.search.query.profile.QueryProfileRegistry)68 Test (org.junit.Test)38 QueryProfile (com.yahoo.search.query.profile.QueryProfile)24 CompiledQueryProfileRegistry (com.yahoo.search.query.profile.compiled.CompiledQueryProfileRegistry)16 RawRankProfile (com.yahoo.searchdefinition.derived.RawRankProfile)16 QueryProfileType (com.yahoo.search.query.profile.types.QueryProfileType)14 Query (com.yahoo.search.Query)11 AttributeFields (com.yahoo.searchdefinition.derived.AttributeFields)11 QueryProfiles (com.yahoo.vespa.model.container.search.QueryProfiles)11 Pair (com.yahoo.collections.Pair)8 QueryProfileXMLReader (com.yahoo.search.query.profile.config.QueryProfileXMLReader)8 Search (com.yahoo.searchdefinition.Search)8 FieldDescription (com.yahoo.search.query.profile.types.FieldDescription)7 RankProfileRegistry (com.yahoo.searchdefinition.RankProfileRegistry)7 BaseDeployLogger (com.yahoo.config.model.application.provider.BaseDeployLogger)6 SDDocumentType (com.yahoo.searchdefinition.document.SDDocumentType)6 SDField (com.yahoo.searchdefinition.document.SDField)5 ComponentId (com.yahoo.component.ComponentId)4 CompiledQueryProfile (com.yahoo.search.query.profile.compiled.CompiledQueryProfile)4 QueryProfileTypeRegistry (com.yahoo.search.query.profile.types.QueryProfileTypeRegistry)4