When I run the Java code, it returns the valid rows which match the regex. I base64encoded the qulaifier and family fields as well, still empty result.
Suresh -----Original Message----- From: Andrew Purtell [mailto:apurt...@apache.org] Sent: Thursday, October 18, 2012 1:19 PM To: user@hbase.apache.org Subject: Re: Using filters in REST/stargate returns 204 (No content) What does the HBase shell return if you try that scan programatically? On Thu, Oct 18, 2012 at 11:02 AM, Kumar, Suresh <suresh.kum...@emc.com>wrote: > > > I have a HBase Java client which has a couple of filters and just work > fine, I get the expected result. > > Here is the code: > > > > HTable table = new HTable(conf, "apachelogs"); > > > Scan scan = new Scan(); > > > FilterList list = new > FilterList(FilterList.Operator.MUST_PASS_ALL); > > > RegexStringComparator comp = new > RegexStringComparator("ERROR xxxxx."); > > > > SingleColumnValueFilter filter = new > SingleColumnValueFilter(Bytes.toBytes("mylog"), Bytes.toBytes("pcol"), > > > CompareOp.EQUAL, comp); > > filter.setFilterIfMissing(true); > > list.addFilter(filter); > > scan.setFilter(list); > > ResultScanner scanner = table.getScanner(scan); > > > > I startup the REST server, and use curl for the above functionality, I > just base 64 encoded "ERROR xxxxx.": > > > > curl -v -H "Content-Type:text/xml" -d @args.txt > http://localhost:8080/apachelogs/scanner > > > > where args.txt is: > > > > <Scanner> > > <filter> > > { > > "latestVersion":true, "ifMissing":true, > > "qualifier":"pcol", "family":"mylog", > > "op":"EQUAL", "type":"SingleColumnValueFilter", > > > "comparator":{"value":"RVJST1Igc2VydmljZSBhdXRoZW50aWNhdGUgVXNlcgo=","ty > pe":"RegexStringComparator"} > > } > > </filter> > > </Scanner> > > > > which returns > > * About to connect() to localhost port 8080 (#0) > > * Trying 127.0.0.1... connected > > > POST /apachelogs/scanner HTTP/1.1 > > > User-Agent: curl/7.22.0 (x86_64-pc-linux-gnu) libcurl/7.22.0 > OpenSSL/1.0.1 zlib/1.2.3.4 libidn/1.23 librtmp/2.3 > > > Host: localhost:8080 > > > Accept: */* > > > Content-Type:text/xml > > > Content-Length: 318 > > > > > * upload completely sent off: 318out of 318 bytes > > < HTTP/1.1 201 Created > > < Location: > http://localhost:8080/apachelogs/scanner/13505819795654de4e6c6 > > < Content-Length: 0 > > < > > * Connection #0 to host localhost left intact > > * Closing connection #0 > > > > but curl -v > http://localhost:8080/apachelogs/scanner/13505819795654de4e6c6 > > returns HTTP/1.1 204 No Content > > > > Any clues? > > > > Thanks, > > Suresh > > -- Best regards, - Andy Problems worthy of attack prove their worth by hitting back. - Piet Hein (via Tom White)