“prefix”
query matches documents that have fields containing terms with a specified
prefix.
Add mappings
to type “titles” like below.
PUT /books/_mappings/titles { "titles" : { "properties" : { "title" :{ "type" : "string", "index": "not_analyzed" } } } }
Insert below
data into type “titles”.
PUT /_bulk {"create" : {"_index": "books", "_type": "titles", "_id": "1" }} {"id" : 1, "title" : "Courage: The Joy of Living Dangerously"} {"create" : {"_index": "books", "_type": "titles", "_id": "2" }} {"id" : 2, "title" : "Creativity: Unleashing the Forces Within"} {"create" : {"_index": "books", "_type": "titles", "_id": "3" }} {"id" : 3, "title" : "Joy: The Happiness That Comes from Within"} {"create" : {"_index": "books", "_type": "titles", "_id": "4" }} {"id" : 4, "title" : "Freedom: The Courage to Be Yourself "} {"create" : {"_index": "books", "_type": "titles", "_id": "5" }} {"id" : 5, "title" : "The Book of Secrets"} {"create" : {"_index": "books", "_type": "titles", "_id": "6" }} {"id" : 6, "title" : "Love, Freedom, and Aloneness: The Koan of Relationships"} {"create" : {"_index": "books", "_type": "titles", "_id": "7" }} {"id" : 7, "title" : "Life, Love, Laughter: Celebrating Your Existence"}
Get all
books whose title starts with ‘L’.
QueryBuilder
builder = QueryBuilders.prefixQuery("title", "L");
Above
statement is used to get all the documents where title starts with ‘L’.
Following is
the complete working application. Please go through
following link, to get all utility classes.
package com.self_learn.test; import java.io.IOException; import java.util.concurrent.ExecutionException; import org.elasticsearch.action.search.SearchResponse; import org.elasticsearch.client.Client; import org.elasticsearch.index.query.QueryBuilder; import org.elasticsearch.index.query.QueryBuilders; import com.self_learn.util.SearchUtil; import com.self_learn.util.TransportClientUtil; public class Main { private static String clusterName = "my_cluster_1"; private static String _index = "books"; private static String _type = "titles"; public static void main(String args[]) throws IOException, InterruptedException, ExecutionException { Client client = TransportClientUtil.getLocalTransportClient( clusterName, 9300); QueryBuilder builder = QueryBuilders.prefixQuery("title", "L"); System.out.println(builder); SearchResponse response = SearchUtil.getDocuments(client, builder, _index, _type); System.out.println(response); client.close(); } }
Above
application generates following output.
Sep 14, 2015 9:49:53 AM org.elasticsearch.plugins.PluginsService <init> INFO: [Meanstreak] loaded [], sites [] { "prefix" : { "title" : "L" } } { "took" : 4, "timed_out" : false, "_shards" : { "total" : 5, "successful" : 5, "failed" : 0 }, "hits" : { "total" : 2, "max_score" : 1.0, "hits" : [ { "_index" : "books", "_type" : "titles", "_id" : "6", "_score" : 1.0, "_source":{"id" : 6, "title" : "Love, Freedom, and Aloneness: The Koan of Relationships"} }, { "_index" : "books", "_type" : "titles", "_id" : "7", "_score" : 1.0, "_source":{"id" : 7, "title" : "Life, Love, Laughter: Celebrating Your Existence"} } ] } }
No comments:
Post a Comment