diff options
author | Kristian Aune <kraune@yahoo-inc.com> | 2017-08-18 09:14:46 +0200 |
---|---|---|
committer | Kristian Aune <kraune@yahoo-inc.com> | 2017-08-18 09:14:46 +0200 |
commit | e36ce286e3cc2026fe0ccbbf0e116477b23c70e1 (patch) | |
tree | 3d3dadc8869629d7ebc7d019a400fc641a072c4c /sample-apps/http-api-using-searcher/src/main | |
parent | a618787ba847eed7c30f6bd81256db8d39e5e2c4 (diff) |
Sample apps moved to vespa-engine/sample-apps
Diffstat (limited to 'sample-apps/http-api-using-searcher/src/main')
8 files changed, 0 insertions, 314 deletions
diff --git a/sample-apps/http-api-using-searcher/src/main/application/hosts.xml b/sample-apps/http-api-using-searcher/src/main/application/hosts.xml deleted file mode 100644 index 541d2f10304..00000000000 --- a/sample-apps/http-api-using-searcher/src/main/application/hosts.xml +++ /dev/null @@ -1,7 +0,0 @@ -<?xml version="1.0" encoding="utf-8" ?> -<!-- Copyright 2017 Yahoo Holdings. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. --> -<hosts> - <host name="localhost"> - <alias>node1</alias> - </host> -</hosts> diff --git a/sample-apps/http-api-using-searcher/src/main/application/searchdefinitions/basic.sd b/sample-apps/http-api-using-searcher/src/main/application/searchdefinitions/basic.sd deleted file mode 100644 index 8f132254d4a..00000000000 --- a/sample-apps/http-api-using-searcher/src/main/application/searchdefinitions/basic.sd +++ /dev/null @@ -1,17 +0,0 @@ -# Copyright 2017 Yahoo Holdings. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. -search basic { - - document basic { - - field description type string { - indexing: summary | index - } - - } - - fieldset default { - fields: description - } - -} - diff --git a/sample-apps/http-api-using-searcher/src/main/application/services.xml b/sample-apps/http-api-using-searcher/src/main/application/services.xml deleted file mode 100644 index e879c3d4595..00000000000 --- a/sample-apps/http-api-using-searcher/src/main/application/services.xml +++ /dev/null @@ -1,40 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<!-- Copyright 2017 Yahoo Holdings. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. --> -<services version="1.0"> - - <container id="default" version="1.0"> - <document-api /> <!-- Enable feed endpoint --> - <search> - <chain inherits="vespa" id="default"> - <searcher id="com.yahoo.demo.DemoSearcher" bundle="sample-app-http-api-searcher"> - <config name="demo.demo"> - <demo> - <item> - <term>smurf</term> - </item> - </demo> - </config> - </searcher> - </chain> - <renderer id="demo" class="com.yahoo.demo.DemoRenderer" bundle="sample-app-http-api-searcher"/> - </search> - <handler id="com.yahoo.demo.DemoHandler" bundle="sample-app-http-api-searcher"> - <binding>http://*:8080/demo</binding> - </handler> - <component id="com.yahoo.demo.DemoComponent" bundle="sample-app-http-api-searcher"/> - <nodes> - <node hostalias="node1"/> - </nodes> - </container> - - <content id="logical" version="1.0"> - <redundancy>1</redundancy> - <documents> - <document mode="index" type="basic"/> - </documents> - <nodes> - <node distribution-key="0" hostalias="node1"/> - </nodes> - </content> - -</services> diff --git a/sample-apps/http-api-using-searcher/src/main/java/com/yahoo/demo/DemoComponent.java b/sample-apps/http-api-using-searcher/src/main/java/com/yahoo/demo/DemoComponent.java deleted file mode 100644 index d9761d95b48..00000000000 --- a/sample-apps/http-api-using-searcher/src/main/java/com/yahoo/demo/DemoComponent.java +++ /dev/null @@ -1,45 +0,0 @@ -// Copyright 2017 Yahoo Holdings. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. -package com.yahoo.demo; - -import com.yahoo.component.AbstractComponent; - -import java.text.Normalizer; -import java.util.HashSet; -import java.util.Random; -import java.util.Set; - -/** - * A shared component with an "expensive" constructor exposing a shared, - * thread-safe service. - */ -public class DemoComponent extends AbstractComponent { - private final Set<Integer> illegalHashes; - - public DemoComponent() { - illegalHashes = new HashSet<Integer>(); - Random r = new Random(); - // generate up to 1e6 unique hashes - for (int i = 0; i < 1000 * 1000; ++i) { - illegalHashes.add(r.nextInt()); - } - } - - /** - * NFKC-normalize term, or replace it with "smurf" with a low probability. - * Will change choice for each run, but will be constant in a single run of - * the container. - * - * @param term - * term to normalize or replace with "smurf" - * @return NFKC-normalized term or "smurf" - */ - public String normalize(String term) { - String normalized = Normalizer.normalize(term, Normalizer.Form.NFKC); - if (illegalHashes.contains(normalized.hashCode())) { - return "smurf"; - } else { - return normalized; - } - } - -} diff --git a/sample-apps/http-api-using-searcher/src/main/java/com/yahoo/demo/DemoHandler.java b/sample-apps/http-api-using-searcher/src/main/java/com/yahoo/demo/DemoHandler.java deleted file mode 100644 index e5a293846cc..00000000000 --- a/sample-apps/http-api-using-searcher/src/main/java/com/yahoo/demo/DemoHandler.java +++ /dev/null @@ -1,50 +0,0 @@ -// Copyright 2017 Yahoo Holdings. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. -package com.yahoo.demo; - -import com.google.inject.Inject; -import com.yahoo.container.jdisc.HttpRequest; -import com.yahoo.container.jdisc.HttpResponse; -import com.yahoo.container.jdisc.LoggingRequestHandler; -import com.yahoo.container.logging.AccessLog; -import com.yahoo.search.handler.SearchHandler; -import com.yahoo.search.query.Model; -import com.yahoo.search.query.Presentation; - -import java.util.concurrent.Executor; - -/** - * Forward requests to search handler after adding "Red Hat" as query and "demo" - * as renderer ID. - */ -public class DemoHandler extends LoggingRequestHandler { - - private final SearchHandler searchHandler; - - /** - * Constructor for use in injection. The requested objects are subclasses of - * component or have dedicated providers, so the container will know how to - * create this handler. - * - * @param executor - * threadpool, provided by Vespa - * @param accessLog - * access log for incoming queries, provided by Vespa - * @param searchHandler - * the Vespa search handler, also automatically injected - */ - @Inject - public DemoHandler(Executor executor, AccessLog accessLog, - SearchHandler searchHandler) { - super(executor, accessLog, null, true); - this.searchHandler = searchHandler; - } - - @Override - public HttpResponse handle(HttpRequest request) { - HttpRequest searchRequest = new HttpRequest.Builder(request) - .put(Model.QUERY_STRING, "Red Hat") - .put(Presentation.FORMAT, "demo").createDirectRequest(); - HttpResponse r = searchHandler.handle(searchRequest); - return r; - } -} diff --git a/sample-apps/http-api-using-searcher/src/main/java/com/yahoo/demo/DemoRenderer.java b/sample-apps/http-api-using-searcher/src/main/java/com/yahoo/demo/DemoRenderer.java deleted file mode 100644 index dd5ea469620..00000000000 --- a/sample-apps/http-api-using-searcher/src/main/java/com/yahoo/demo/DemoRenderer.java +++ /dev/null @@ -1,74 +0,0 @@ -// Copyright 2017 Yahoo Holdings. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. -package com.yahoo.demo; - -import com.yahoo.search.Result; -import com.yahoo.search.rendering.Renderer; -import com.yahoo.search.result.Hit; -import com.yahoo.search.result.HitGroup; - -import java.io.IOException; -import java.io.Writer; -import java.util.Iterator; - -/** - * Render result sets as plain text. First line is whether an error occurred, - * second rendering initialization time stamp, then each line is the ID of each - * document returned, and the last line is time stamp for when the renderer was - * finished. - */ -public class DemoRenderer extends Renderer { - private String heading; - - /** - * No global, shared state to set. - */ - public DemoRenderer() { - } - - @Override - protected void render(Writer writer, Result result) throws IOException { - if (result.hits().getErrorHit() == null) { - writer.write("OK\n"); - } else { - writer.write("Oops!\n"); - } - writer.write(heading); - writer.write("\n"); - renderHits(writer, result.hits()); - writer.write("Rendering finished work: " + System.currentTimeMillis()); - writer.write("\n"); - } - - private void renderHits(Writer writer, HitGroup hits) throws IOException { - for (Iterator<Hit> i = hits.deepIterator(); i.hasNext();) { - Hit h = i.next(); - if (h.types().contains("summary")) { - String id = h.getDisplayId(); - if (id != null) { - writer.write(id); - writer.write("\n"); - } - } - } - } - - @Override - public String getEncoding() { - return "utf-8"; - } - - @Override - public String getMimeType() { - return "text/plain"; - } - - /** - * Initialize mutable, per-result set state here. - */ - @Override - public void init() { - long time = System.currentTimeMillis(); - heading = "Renderer initialized: " + time; - } - -} diff --git a/sample-apps/http-api-using-searcher/src/main/java/com/yahoo/demo/DemoSearcher.java b/sample-apps/http-api-using-searcher/src/main/java/com/yahoo/demo/DemoSearcher.java deleted file mode 100644 index 8f57cba6c8b..00000000000 --- a/sample-apps/http-api-using-searcher/src/main/java/com/yahoo/demo/DemoSearcher.java +++ /dev/null @@ -1,76 +0,0 @@ -// Copyright 2017 Yahoo Holdings. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. -package com.yahoo.demo; - -import com.yahoo.component.chain.dependencies.After; -import com.yahoo.component.chain.dependencies.Before; -import com.yahoo.component.chain.dependencies.Provides; -import com.yahoo.demo.DemoConfig.Demo; -import com.yahoo.prelude.query.AndItem; -import com.yahoo.prelude.query.CompositeItem; -import com.yahoo.prelude.query.Item; -import com.yahoo.prelude.query.WordItem; -import com.yahoo.processing.request.CompoundName; -import com.yahoo.search.Query; -import com.yahoo.search.Result; -import com.yahoo.search.Searcher; -import com.yahoo.search.query.QueryTree; -import com.yahoo.search.searchchain.Execution; -import com.yahoo.search.searchchain.PhaseNames; - -import java.util.List; - -/** - * A searcher for adding a set of configured terms as AND terms, and add a - * single term from the request to the query tree (after running the term - * through a shared component). - */ -@After(PhaseNames.RAW_QUERY) -@Before(PhaseNames.TRANSFORMED_QUERY) -@Provides(DemoSearcher.DEMO_TRANSFORM) -public class DemoSearcher extends Searcher { - public static final String DEMO_TRANSFORM = "com.yahoo.demo.DemoSearcher.NothingUseful"; - - /** - * The request property with this name will be filtered and added to the - * query as an AND term. - */ - public static final CompoundName EXTRA_TERM = new CompoundName("extraTerm"); - - private final List<Demo> extraTerms; - - private final DemoComponent infrastructure; - - public DemoSearcher(DemoComponent infrastructure, DemoConfig extraTerms) { - this.extraTerms = extraTerms.demo(); - this.infrastructure = infrastructure; - } - - /** - * Programmatic query transform, add terms from config and the EXTRA_TERM - * request property. - */ - @Override - public Result search(Query query, Execution execution) { - QueryTree q = query.getModel().getQueryTree(); - addAndItem(q, infrastructure.normalize( - query.properties().getString(EXTRA_TERM))); - for (Demo d : extraTerms) { - addAndItem(q, d.term()); - } - return execution.search(query); - } - - private void addAndItem(QueryTree q, String term) { - Item root = q.getRoot(); - CompositeItem compositeRoot; - if (root instanceof AndItem) { - compositeRoot = (CompositeItem) root; - } else { - compositeRoot = new AndItem(); - compositeRoot.addItem(root); - q.setRoot(compositeRoot); - } - compositeRoot.addItem(new WordItem(term)); - } - -} diff --git a/sample-apps/http-api-using-searcher/src/main/resources/configdefinitions/demo.def b/sample-apps/http-api-using-searcher/src/main/resources/configdefinitions/demo.def deleted file mode 100644 index 6b8d2782e1d..00000000000 --- a/sample-apps/http-api-using-searcher/src/main/resources/configdefinitions/demo.def +++ /dev/null @@ -1,5 +0,0 @@ -# Copyright 2017 Yahoo Holdings. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. -namespace=demo - -demo[].term string - |