use of com.yahoo.search.query.profile.config.QueryProfileXMLReader in project vespa by vespa-engine.
the class XmlReadingTestCase method testNewsCase1.
@Test
public void testNewsCase1() {
CompiledQueryProfileRegistry registry = new QueryProfileXMLReader().read("src/test/java/com/yahoo/search/query/profile/config/test/newscase1").compile();
Query query;
query = new Query(HttpRequest.createTestRequest("?query=test&custid_1=parent", Method.GET), registry.getComponent("default"));
assertEquals("0.0", query.properties().get("ranking.features.b"));
assertEquals("0.0", query.properties().listProperties().get("ranking.features.b"));
query = new Query(HttpRequest.createTestRequest("?query=test&custid_1=parent&custid_2=child", Method.GET), registry.getComponent("default"));
assertEquals("0.1", query.properties().get("ranking.features.b"));
assertEquals("0.1", query.properties().listProperties().get("ranking.features.b"));
}
use of com.yahoo.search.query.profile.config.QueryProfileXMLReader in project vespa by vespa-engine.
the class XmlReadingTestCase method testSourceProvider.
@Test
public void testSourceProvider() {
CompiledQueryProfileRegistry registry = new QueryProfileXMLReader().read("src/test/java/com/yahoo/search/query/profile/config/test/sourceprovider").compile();
String queryString = "tiled?query=india&queryProfile=myprofile&source.common.intl=tw&source.common.mode=adv";
Query query = new Query(HttpRequest.createTestRequest(queryString, Method.GET), registry.getComponent("myprofile"));
for (Map.Entry e : query.properties().listProperties().entrySet()) System.out.println(e);
assertEquals("news", query.properties().listProperties().get("source.common.provider"));
assertEquals("news", query.properties().get("source.common.provider"));
}
use of com.yahoo.search.query.profile.config.QueryProfileXMLReader in project vespa by vespa-engine.
the class XmlReadingTestCase method testNewsFE1.
@Test
public void testNewsFE1() {
CompiledQueryProfileRegistry registry = new QueryProfileXMLReader().read("src/test/java/com/yahoo/search/query/profile/config/test/newsfe").compile();
String queryString = "tiled?vertical=news&query=barack&intl=us&resulttypes=article&testid=&clientintl=us&SpellState=&rss=0&tracelevel=5";
Query query = new Query(HttpRequest.createTestRequest(queryString, Method.GET), registry.getComponent("default"));
assertEquals("13", query.properties().listProperties().get("source.news.discovery.sources.count"));
assertEquals("13", query.properties().get("source.news.discovery.sources.count"));
assertEquals("sources", query.properties().listProperties().get("source.news.discovery"));
assertEquals("sources", query.properties().get("source.news.discovery"));
}
use of com.yahoo.search.query.profile.config.QueryProfileXMLReader in project vespa by vespa-engine.
the class XmlReadingTestCase method testQueryProfileVariants2.
@Test
public void testQueryProfileVariants2() {
CompiledQueryProfileRegistry registry = new QueryProfileXMLReader().read("src/test/java/com/yahoo/search/query/profile/config/test/queryprofilevariants2").compile();
CompiledQueryProfile multi = registry.getComponent("multi");
{
Query query = new Query(HttpRequest.createTestRequest("?queryProfile=multi", Method.GET), multi);
query.validate();
assertEquals("best", query.properties().get("model.queryString"));
assertEquals("best", query.getModel().getQueryString());
}
{
Query query = new Query(HttpRequest.createTestRequest("?queryProfile=multi&myindex=default", Method.GET), multi);
query.validate();
assertEquals("best", query.properties().get("model.queryString"));
assertEquals("best", query.getModel().getQueryString());
assertEquals("default", query.getModel().getDefaultIndex());
}
{
Query query = new Query(HttpRequest.createTestRequest("?queryProfile=multi&myindex=default&myquery=love", Method.GET), multi);
query.validate();
assertEquals("love", query.properties().get("model.queryString"));
assertEquals("love", query.getModel().getQueryString());
assertEquals("default", query.getModel().getDefaultIndex());
}
{
Query query = new Query(HttpRequest.createTestRequest("?model=querybest", Method.GET), multi);
query.validate();
assertEquals("best", query.getModel().getQueryString());
assertEquals("title", query.properties().get("model.defaultIndex"));
assertEquals("title", query.getModel().getDefaultIndex());
}
}
use of com.yahoo.search.query.profile.config.QueryProfileXMLReader in project vespa by vespa-engine.
the class DumpTool method dump.
private String dump(String profileName, String dir, String parameters) {
// Import profiles
if (dir.isEmpty())
dir = ".";
File dirInAppPackage = new File(dir, "search/query-profiles");
if (dirInAppPackage.exists())
dir = dirInAppPackage.getPath();
QueryProfileXMLReader reader = new QueryProfileXMLReader();
QueryProfileRegistry registry = reader.read(dir);
registry.freeze();
// Dump (through query to get wiring & parameter parsing done easily)
Query query = new Query("?" + parameters, registry.compile().findQueryProfile(profileName));
Map<String, Object> properties = query.properties().listProperties();
// Create result
StringBuilder b = new StringBuilder();
for (Map.Entry<String, Object> property : properties.entrySet()) {
b.append(property.getKey());
b.append("=");
b.append(property.getValue().toString());
b.append("\n");
}
return b.toString();
}
Aggregations