Forum: Ruby on Rails grep-like search help

Announcement (2017-05-07): www.ruby-forum.com is now read-only since I unfortunately do not have the time to support and maintain the forum any more. Please see rubyonrails.org/community and ruby-lang.org/en/community for other Rails- und Ruby-related community platforms.
461778b4a863c86afe52dfc8787685de?d=identicon&s=25 Ralph Wood (esmero)
on 2009-02-07 02:58
Hello, noob here.

I have a table called 'entries' with lots of sentences, one per row
(id). I need to find specific sentences that have the words I'm looking
for anywhere in them. For example:

>1. The bird entered the kitchen through the door.
>
>2. You left the door of your car open.
>
>3. Close the window or the bird will get out of the car.

If I search for 'bird' and 'door', I want only the sentence with the id
1 to come up. If I search for 'door' and 'car', I want only the sentence
with the id 2 to come up. If I search for 'bird' and 'car', I want only
the sentence with the id 3 to come up.

So, basically, what this grep command would do:

> cat my.file | grep bird | grep door

But I'm not getting anywhere with any search technique or plugin I've
tried so far. Any ideas?
41cc2c53544016a86472343ab3fdc0ff?d=identicon&s=25 Simon Macneall (Guest)
on 2009-02-07 03:23
(Received via mailing list)
isn't that just the condition

'sentence like %bird%door%'?

Although that will only get them where they appear in that particular
order. You could interate all the possibilities

ie conditions => ['sentence like %bird%door% or sentence like
%door%bird%'] but that will get messy the more words you have in your
search.

but there might be something else you can do in SQL.

Cheers
Simon
461778b4a863c86afe52dfc8787685de?d=identicon&s=25 Ralph Wood (esmero)
on 2009-02-07 03:55
Simon Macneall wrote:
>but that will get messy the more words you have in your
> search.

Yeah, I was figuring I was gonna have to do something like an 'explode'
with the search terms at some point.
5f94b9b346c2aa648a80bc259978e5bc?d=identicon&s=25 Colin Law (Guest)
on 2009-02-07 11:21
(Received via mailing list)
Would
conditions => ['sentence like %bird% and sentence like %door%']
do the job?

2009/2/7 Ralph Wood <rails-mailing-list@andreas-s.net>
Bee69cfed999cd13e3bff73d472a39ee?d=identicon&s=25 Hassan Schroeder (Guest)
on 2009-02-07 16:44
(Received via mailing list)
On Fri, Feb 6, 2009 at 5:58 PM, Ralph Wood
<rails-mailing-list@andreas-s.net> wrote:

> I have a table called 'entries' with lots of sentences, one per row
> (id). I need to find specific sentences that have the words I'm looking
> for anywhere in them.

If you're using MySQL, you can create a FULLTEXT index on the
field(s) in question and use MATCH:

<http://dev.mysql.com/doc/refman/5.0/en/fulltext-na...

Other RDBMSs may have an equivalent.

HTH,
--
Hassan Schroeder ------------------------ hassan.schroeder@gmail.com
This topic is locked and can not be replied to.