Hi, I think there are still issue in sorting. As I iterate over the BlurResult , I can see data are partially sorted. e.g. I have 3 shard server, and if my search return say 100 records, I do not see all 100 are sorted, but subset of those records are sorted. Is the sorting happening on shard server level and thus three cluster of sorted results I am getting which are basically sorted set from a given shard server ?
Dib On Tue, Jun 17, 2014 at 6:48 PM, Aaron McCurry <[email protected]> wrote: > Ok, we need to provide a better error message. Glad to hear that things > seem to be working. > > Aaron > > > On Tue, Jun 17, 2014 at 2:43 AM, Dibyendu Bhattacharya < > [email protected]> wrote: > > > Hi, > > > > When I set "query.setRowQuery(false)"; then I do get the result in > sorted > > order.. . Sorry I did not check the Row Query to false yesterday... > > > > As I see the documents, I think right now sorting is only supported for > > Record Query.. So we are fine now with setting the above boolean flag. > > > > > > > > When Row Query is not set to false, then I got following exception.. > > > > BlurException(message:Query [Query(query:*, rowQuery:true, > scoreType:SUPER, > > rowFilter:null, recordFilter:null)] in BlurQuery > > [BlurQuery(query:Query(query:*, rowQuery:true, scoreType:SUPER, > > rowFilter:null, recordFilter:null), facets:null, > > selector:Selector(recordOnly:true, locationId:null, rowId:null, > > recordId:null, columnFamiliesToFetch:[revel], columnsToFetch:null, > > startRecord:0, maxRecordsToFetch:1000, highlightOptions:null, > > orderOfFamiliesToFetch:null), useCacheIfPresent:true, start:0, fetch:100, > > minimumNumberOfResults:9223372036854775807, > > maxQueryTime:9223372036854775807, uuid:null, userContext:null, > > cacheResult:true, startTime:0, sortFields:[SortField(family:revel, > > column:timestamp, reverse:true)], rowId:null)] cannot be a rowquery when > > sortfields are supplied., stackTraceStr:null, errorType:UNKNOWN) > > at > > > > > org.apache.blur.thrift.generated.Blur$query_result$query_resultStandardScheme.read(Blur.java:17790) > > at > > > > > org.apache.blur.thrift.generated.Blur$query_result$query_resultStandardScheme.read(Blur.java:1) > > at > > org.apache.blur.thrift.generated.Blur$query_result.read(Blur.java:17706) > > at > > > > > org.apache.blur.thirdparty.thrift_0_9_0.TServiceClient.receiveBase(TServiceClient.java:78) > > at > > org.apache.blur.thrift.generated.Blur$Client.recv_query(Blur.java:959) > > at > > > > > org.apache.blur.thrift.generated.SafeClientGen.recv_query(SafeClientGen.java:403) > > at > > org.apache.blur.thrift.generated.Blur$Client.query(Blur.java:945) > > at > > > > > org.apache.blur.thrift.generated.SafeClientGen.query(SafeClientGen.java:221) > > at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) > > at > > > > > sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) > > at > > > > > sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) > > at java.lang.reflect.Method.invoke(Method.java:606) > > at > > > > > org.apache.blur.thrift.BlurClient$BlurClientInvocationHandler$1.call(BlurClient.java:60) > > at > > > > > org.apache.blur.thrift.BlurClient$BlurClientInvocationHandler$1.call(BlurClient.java:1) > > at > > org.apache.blur.thrift.AbstractCommand.call(AbstractCommand.java:62) > > at > > > > > org.apache.blur.thrift.BlurClientManager.execute(BlurClientManager.java:192) > > at > > > > > org.apache.blur.thrift.BlurClient$BlurClientInvocationHandler.invoke(BlurClient.java:56) > > at com.sun.proxy.$Proxy0.query(Unknown Source) > > at > > > com.pearson.blur.client.indexer.BlurQueryTest.main(BlurQueryTest.java:107) > > > > > > > > > > > > On Mon, Jun 16, 2014 at 10:30 PM, Aaron McCurry <[email protected]> > > wrote: > > > > > Ok that sounds like a bug. Thanks for letting us know, I will take a > > look > > > this afternoon and try to track it down for you. > > > > > > Thanks! > > > > > > Aaron > > > > > > > > > On Mon, Jun 16, 2014 at 12:58 PM, Dibyendu Bhattacharya < > > > [email protected]> wrote: > > > > > > > Yes, I get all records matched the search if I comment the sorting , > > i.e. > > > > if I comment below line, I got the results. > > > > > > > > blurQuery.addToSortFields(new SortField("family", "timestamp", > true)); > > > > > > > > > > > > > > > > > > > > On Mon, Jun 16, 2014 at 10:02 PM, Aaron McCurry <[email protected]> > > > > wrote: > > > > > > > > > On Mon, Jun 16, 2014 at 12:00 PM, Dibyendu Bhattacharya < > > > > > [email protected]> wrote: > > > > > > > > > > > I got 0 results. It was Record query. > > > > > > > > > > > > > > > > And if you run the same query without any of the sort feature > turned > > on > > > > do > > > > > you get a different result? > > > > > > > > > > > > > > > > > > > > > > Dib > > > > > > On Jun 16, 2014 9:08 PM, "Aaron McCurry" <[email protected]> > > wrote: > > > > > > > > > > > > > On Mon, Jun 16, 2014 at 10:19 AM, Dibyendu Bhattacharya < > > > > > > > [email protected]> wrote: > > > > > > > > > > > > > > > Hi Aaron, > > > > > > > > > > > > > > > > I wanted to implement sorting of records during search, but > it > > > > seems > > > > > > > > sorting feature not working. > > > > > > > > > > > > > > > > This is what I tried. > > > > > > > > > > > > > > > > I defined a Column Definition as long type and set the > > sortable > > > as > > > > > > true > > > > > > > > during table creation, and populate the long field with > > timestamp > > > > > value > > > > > > > > during indexing. > > > > > > > > > > > > > > > > During query I used ( timestamp is the column name that is > > > > sortable) > > > > > > > > > > > > > > > > Query query = new Query(); > > > > > > > > query.setQuery(queryString); > > > > > > > > BlurQuery blurQuery = new BlurQuery(); > > > > > > > > blurQuery.setQuery(query); > > > > > > > > blurQuery.setStart(pageSize); > > > > > > > > blurQuery.setFetch(fetchSize); > > > > > > > > blurQuery.addToSortFields(new SortField("family", > "timestamp", > > > > > true)); > > > > > > > > Selector selector = new Selector(); > > > > > > > > selector.setRecordOnly(true); > > > > > > > > selector.addToColumnFamiliesToFetch("family"); > > > > > > > > blurQuery.setSelector(selector); > > > > > > > > > > > > > > > > results = client.query("table", blurQuery); > > > > > > > > > > > > > > > > > > > > > > > > But this does not return any result. > > > > > > > > > > > > > > > > > > > > > > What is the result? An error? Or 0 results? > > > > > > > > > > > > > > Also there can be some confusion about Record and Row query > > results > > > > > > because > > > > > > > they are stored in two different fields. > > > > > > > > > > > > > > > > > > > > > > > http://incubator.apache.org/blur/docs/0.2.2/Blur.html#Struct_FetchResult > > > > > > > > > > > > > > Let me know if there is anything else I can help with. I will > > > rerun > > > > > some > > > > > > > tests later today to make sure that the feature does in fact > > work. > > > > > > > > > > > > > > Aaron > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > My schema is very simple, we have one record for every row > and > > > > every > > > > > > > > record have around 5 columns. > > > > > > > > > > > > > > > > Can you please let me know if I am missing anything. > > > > > > > > > > > > > > > > Regards, > > > > > > > > Dibyendu > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > >
