Any updates?
On Monday, April 21, 2014 2:14:07 PM UTC+5:30, karthick r wrote: > > Hi, > [ES VERSION: 1.0.1. Default mappings.] > > I have an index which holds the twitter data. The user will have the > option to perform the https://twitter.com/search-advanced in the UI that > I'm building. Upon receiving the search request, I query the index and > return the results. [Source: http://pastebin.com/ep0eBxXY] > > I have a couple of questions: > 1) How do we query complex objects? ie., if i am interested in a field > which is within another object. > Object A > Field in Object A > - Object B > - Field in Object B > > 2) For me, even the OR, AND and NOT queries doesn't seem to work. Am I > missing anything? > > if(null!=request.getAllOfTheseWords()){ > String[] allWords = > request.getAllOfTheseWords().split(","); > FilterBuilder[] allWordsFilter = new > FilterBuilder[allWords.length]; > for(int i=0;i<allWords.length;i++){ > String word = allWords[i]; > allWordsFilter[i] = > FilterBuilders.termFilter("text", word); > } > > srb.setQuery(QueryBuilders.filteredQuery(QueryBuilders.matchAllQuery(), > FilterBuilders.andFilter(allWordsFilter))); > } > else if(null!=request.getOrWords()){ > String[] orWords = request.getOrWords().split(","); > FilterBuilder[] orFilters = new > FilterBuilder[orWords.length]; > for(int i=0;i<orWords.length;i++){ > String word = orWords[i]; > orFilters[i] = FilterBuilders.termFilter("text", > word); > } > > srb.setQuery(QueryBuilders.filteredQuery(QueryBuilders.matchAllQuery(), > FilterBuilders.orFilter(orFilters))); > } > else if(null!=request.getNoneOfTheseWords()){ > String[] noneOfTheseWords = > request.getNoneOfTheseWords().split(","); > FilterBuilder[] noneOfTheseWordsFilter = new > FilterBuilder[noneOfTheseWords.length]; > for(int i=0;i<noneOfTheseWords.length;i++){ > String word = noneOfTheseWords[i]; > noneOfTheseWordsFilter[i] = > FilterBuilders.termFilter("text", word); > } > > srb.setQuery(QueryBuilders.filteredQuery(QueryBuilders.matchAllQuery(), > FilterBuilders.notFilter(FilterBuilders.orFilter(noneOfTheseWordsFilter)))); > } > else if(null!=request.getHashTags()){ > String[] hastags = request.getHashTags().split(","); > FilterBuilder[] hashTagFilter = new > FilterBuilder[hastags.length]; > for(int i=0;i<hastags.length;i++){ > String hashtag = hastags[i]; > hashTagFilter[i] = > FilterBuilders.nestedFilter("hashtag", > FilterBuilders.termFilter("hashtag_text", hashtag)); > } > > srb.setQuery(QueryBuilders.filteredQuery(QueryBuilders.matchAllQuery(), > FilterBuilders.orFilter(hashTagFilter))); > } > else if(null!= request.getFromUser()){ > > srb.setQuery(QueryBuilders.filteredQuery(QueryBuilders.matchAllQuery(), > FilterBuilders.termFilter("screen_name", request.getFromUser()))); > } > else if(null!=request.getSince() && > null!=request.getUntil()){ > > srb.setQuery(QueryBuilders.filteredQuery(QueryBuilders.matchAllQuery(), > FilterBuilders.rangeFilter("created_at").from(request.getSince()).to(request.getUntil()))); > } > } > > However this works fine. > > http://localhost:9200/twitter/_search?q=hashtag_text:MH192&pretty=true > > Please help me out. > > Thanks > > > -- You received this message because you are subscribed to the Google Groups "elasticsearch" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. To view this discussion on the web visit https://groups.google.com/d/msgid/elasticsearch/f7201ffd-b481-4e70-adc4-21a451f37036%40googlegroups.com. For more options, visit https://groups.google.com/d/optout.
