Return-Path: X-Original-To: apmail-incubator-accumulo-user-archive@minotaur.apache.org Delivered-To: apmail-incubator-accumulo-user-archive@minotaur.apache.org Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by minotaur.apache.org (Postfix) with SMTP id 0A14A74B5 for ; Wed, 23 Nov 2011 19:36:08 +0000 (UTC) Received: (qmail 48425 invoked by uid 500); 23 Nov 2011 19:36:07 -0000 Delivered-To: apmail-incubator-accumulo-user-archive@incubator.apache.org Received: (qmail 48404 invoked by uid 500); 23 Nov 2011 19:36:07 -0000 Mailing-List: contact accumulo-user-help@incubator.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: accumulo-user@incubator.apache.org Delivered-To: mailing list accumulo-user@incubator.apache.org Received: (qmail 48396 invoked by uid 99); 23 Nov 2011 19:36:07 -0000 Received: from nike.apache.org (HELO nike.apache.org) (192.87.106.230) by apache.org (qpsmtpd/0.29) with ESMTP; Wed, 23 Nov 2011 19:36:07 +0000 X-ASF-Spam-Status: No, hits=2.2 required=5.0 tests=HTML_MESSAGE,RCVD_IN_DNSWL_LOW,SPF_NEUTRAL X-Spam-Check-By: apache.org Received-SPF: neutral (nike.apache.org: local policy) Received: from [209.85.213.175] (HELO mail-yx0-f175.google.com) (209.85.213.175) by apache.org (qpsmtpd/0.29) with ESMTP; Wed, 23 Nov 2011 19:36:01 +0000 Received: by yenm2 with SMTP id m2so1813637yen.6 for ; Wed, 23 Nov 2011 11:35:40 -0800 (PST) MIME-Version: 1.0 Received: by 10.50.173.74 with SMTP id bi10mr31677735igc.4.1322076939659; Wed, 23 Nov 2011 11:35:39 -0800 (PST) Received: by 10.50.185.193 with HTTP; Wed, 23 Nov 2011 11:35:39 -0800 (PST) In-Reply-To: <7EE3CC08-C832-4BB4-AC0D-957555329566@cordovas.org> References: <7EE3CC08-C832-4BB4-AC0D-957555329566@cordovas.org> Date: Wed, 23 Nov 2011 14:35:39 -0500 Message-ID: Subject: Re: Scan for keyword From: Joey Daughtery To: accumulo-user@incubator.apache.org Content-Type: multipart/alternative; boundary=e89a8f83a0e15aa81504b26c0656 X-Virus-Checked: Checked by ClamAV on apache.org --e89a8f83a0e15aa81504b26c0656 Content-Type: text/plain; charset=ISO-8859-1 Aaron Thanks for the reply. I was only able to get data into Accumulo after reviewing the page you provided. Lets say for example that I am storing a Name, login, displayName columns as the column family. And I have inserted Joe, jd, joey as one record and joey, joe, jd for the second record. mut.put(new Text("Name"), new Text("joe"), cv, new Value("joe"); mut.put(new Text("login"), new Text("jd"), cv, new Value("jd"); mut.put(new Text("DisplayName"), new Text("joey"), cv, new Value("joey"); write(...) mut.put(new Text("Name"), new Text("joey"), cv, new Value("joey"); mut.put(new Text("login"), new Text("joe"), cv, new Value("joe"); mut.put(new Text("DisplayName"), new Text("jd"), cv, new Value("jd"); write(...) How would I execute a keyword search for "joe" in an attempt to pull back both records where Joe is the value for Login for one record while "joe" is a value for Name in another? The example in the Table Design page shows the search based on the row id. >From my understanding if I provide the rowId, it will limit the search to that row. But the example on that page is essentially just loading a specific row based on a rowid, not a keyword search. Thanks for the reply. I hope my explanation of what I am attempting to do is making sense. Joe On Wed, Nov 23, 2011 at 1:55 PM, Aaron Cordova wrote: > Joe, > > If you haven't already, check out the Table Design section of the Manual > > > http://incubator.apache.org/accumulo/user_manual_1.3-incubating/Table_Design.html > > specifically, the subsection titled 'Indexing'. If you have read this, let > us know and we can clarify. > > Aaron > > > On Nov 23, 2011, at 1:46 PM, Jason Rutherglen wrote: > > > The most efficient system would be to implement a secondary [inverted] > > index on the Accumulo data. > > > > May there is a Coprocessor like API that would allow this type of > > functionality to be implemented? > > > > On Wed, Nov 23, 2011 at 1:12 PM, Joey Daughtery > > wrote: > >> All > >> I am new to Accumulo. I have figured out how to store the data, load > all > >> based on scanning with new Range(), and loading a specific row based on > new > >> Range(id). However, if I want to locate a row that has a specific > value, I > >> am not sure how to approach this programmatically. Can someone give me > some > >> insight on how to do such a scan? > >> > >> Also, I have seen several examples of how to populate the Mutation > object. > >> Specifically, I see: > >> mut.put(new Text("column"), new Text("NAME"), timestamp, new > Value("John"); > >> > >> OR > >> mut.put(new Text("NAME"), new Text("John"), timestamp, new Value("John); > >> > >> Could someone indicate which is the correct way to store the data or > >> indicate why one would use one approach over the other? > >> > >> Thanks > >> > >> Joe > > --e89a8f83a0e15aa81504b26c0656 Content-Type: text/html; charset=ISO-8859-1 Content-Transfer-Encoding: quoted-printable Aaron
Thanks for the reply.=A0 I was only able to get data into Accumulo= after reviewing the page you provided.

Lets say for example that I = am storing a Name, login, displayName columns as the column family.=A0 And = I have inserted Joe, jd, joey as one record and joey, joe, jd for the secon= d record.

mut.put(new Text("Name"), new Text("joe"), cv, new = Value("joe");
mut.put(new Text("login"), new Text(&q= uot;jd"), cv, new Value("jd");
mut.put(new Text("Dis= playName"), new Text("joey"), cv, new Value("joey"= );
write(...)

mut.put(new Text("Name"), new Text("joey&q= uot;), cv, new Value("joey");
mut.put(new Text("login"), new Text("joe"), cv, new Val= ue("joe");
mut.put(new Text("DisplayName"), new Text("jd"), cv, ne= w Value("jd");
write(...)

How would I execute a keyword search for "joe" = in an attempt to pull back both records where Joe is the value for Login fo= r one record while "joe" is a value for Name in another?

The example in the Table Design page shows the search based on the row = id.=A0 From my understanding if I provide the rowId, it will limit the sear= ch to that row.=A0 But the example on that page is essentially just loading= a specific row based on a rowid, not a keyword search.

Thanks for the reply.=A0 I hope my explanation of what I am attempting = to do is making sense.

Joe

On Wed,= Nov 23, 2011 at 1:55 PM, Aaron Cordova <aaron@cordovas.org> wrote:
Joe,

If you haven't already, check out the Table Design section of the Manua= l

=A0 =A0 =A0 =A0http://incubator.apach= e.org/accumulo/user_manual_1.3-incubating/Table_Design.html

specifically, the subsection titled 'Indexing'. If you have read th= is, let us know and we can clarify.

Aaron


On Nov 23, 2011, at 1:46 PM, Jason Rutherglen wrote:

> The most efficient system would be to implement a secondary [inverted]=
> index on the Accumulo data.
>
> May there is a Coprocessor like API that would allow this type of
> functionality to be implemented?
>
> On Wed, Nov 23, 2011 at 1:12 PM, Joey Daughtery
> <jdaughtery@t-sciences= .com> wrote:
>> All
>> I am new to Accumulo. =A0I have figured out how to store the data,= load all
>> based on scanning with new Range(), and loading a specific row bas= ed on new
>> Range(id). =A0However, if I want to locate a row that has a specif= ic value, I
>> am not sure how to approach this programmatically. =A0Can someone = give me some
>> insight on how to do such a scan?
>>
>> Also, I have seen several examples of how to populate the Mutation= object.
>> Specifically, I see:
>> mut.put(new Text("column"), new Text("NAME"), = timestamp, new Value("John");
>>
>> OR
>> mut.put(new Text("NAME"), new Text("John"), ti= mestamp, new Value("John);
>>
>> Could someone indicate which is the correct way to store the data = or
>> indicate why one would use one approach over the other?
>>
>> Thanks
>>
>> Joe


--e89a8f83a0e15aa81504b26c0656--