My testing shows that the sort is broken, I'm working on fixing it now. Aaron
On Tue, Jun 17, 2014 at 10:28 AM, Aaron McCurry <[email protected]> wrote: > On Tue, Jun 17, 2014 at 10:08 AM, Dibyendu Bhattacharya < > [email protected]> wrote: > >> 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 ? >> > > You could isolate where the problem lies (controller or shard server) by > connecting your client to the shard server and seeing if the results are > correct from there. The shard server and controller server share the same > api so you would just need to alter the connection string to reflect the > shard server ( <node name>:40020 ). > > I am in the process of testing right now. I will let you know what I find. > > Aaron > > >> >> 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 >> > > > > > > > > >> > > > > > > > > >> > > > > > > > > >> > > > > > > > > >> > > > > > > > >> > > > > > > >> > > > > > >> > > > > >> > > > >> > > >> > >> > >
