> Date: Sat, 5 Apr 2008 14:30:07 -0400
> From: [EMAIL PROTECTED]
> To: [email protected]
> Subject: Re: Custom Search
> 
> On Fri, Apr 4, 2008 at 10:50 AM, Brian Levine <[EMAIL PROTECTED]> wrote:
> >  Has anyone had any luck in implementing a custom search?
> >
> >  I'm interested in searching not just blog entries, but also some other 
> > fields that are in my DB.  I checked out the manuals and dug around in the 
> > code a bit (only found search plugins for google and wiki, but those seem 
> > to be something else).  There doesn't seem to be any hooks in for adding my 
> > own search functionality.  Does this sound right?
> 
> Yes, unfortunately that is correct. There is currently no search plugin 
> facility
> 
> 
> >  Since I don't want to change roller source because that would make 
> > upgrades/updates a PIA, my current plan is to write a new search servlet to 
> > handle what I want to do.  But I still want to keep everything within the 
> > roller framework (if that makes sense).  So, I'm also going to extend 
> > PageModel to be able to display the results in a different way -- because 
> > I'm going to be displaying more than blog entries.  And then right my own 
> > velocity template for rendering the page.  And it looks like I'll have to 
> > implement my own pager since as I mentioned before I'll be returning 
> > results that contain more than blog entries.
> 
> Create your own page models to display your new search results sounds
> like a good idea.
> 
> Question are: 1) how do you hook-in to ensure that you index the
> things you want to index and 2) how do return your search results so
> that they can be included in Roller-generated blog pages and feeds.
> 
> Roller's backend is defined by a set of Java "manager" interfaces that
> create, retrieve, update and delete plain old Java objects or POJOs.
> The implementations of these interfaces are specified in Roller's
> Guice module file, which is called JPAWebloggerModule. By creating
> your own module class and plugging it in via roller-custom.properties,
> you can replace Roller's managers with your own implementations and
> even add entirely new managers.
> 
> Override this property and substitute your own module, naming your
> implementations:
>    
> guice.backend.module=org.apache.roller.weblogger.business.jpa.JPAWebloggerModule
> 
> So, the answer to question #1 might be for you to override Roller's
> WeblogEntryManager with your own implementation, one that extends
> Roller's just to hook in your index operations every time an entry is
> saved, updated or deleted.
> 
> For question #2, you might add your own new SearchManager interface
> with methods that return your new extended seach operations.
> 
> Oh, and one thing to be aware of that Roller's Lucene implementation
> will not scale well, i.e. it won't work in a scenario where you have
> more than one instance of Roller running.
> 
> - Dave

Dave, thanks for your response!

For question #1:  After taking a look at the Guice file you mentioned, I think 
I can get away with overriding IndexManagerImp (and pointing to the new 
implementation in the Guice file), since I don't need to change how blog 
entries are stored and indexed (I know, not very clear from my description).   
Instead, I want to be able to search blog entries and I have other documents 
that I want to search.  So I'll probably set up a second Lucene index for these 
different kinds of documents.  Then I'll  override the classes that are in the 
org.apache.roller.weblogger.business.search.operations package (or write new 
classes for the second Lucene index).

For quesiton #2: I think I'm okay here.  The extra, umm, stuff that I want 
people to be able to search for, shouldn't be displayed in feeds.  The 
documents are web pages on other, external websites (it's a niche search 
engine).  Is search being used in other places (besides the feeds), like where 
you display blog entries by category?  Or someplace else?

Scalability: Am I going to have trouble running lucene in a hosted environment 
where other accounts on the same machine are running roller?  Will it be slow, 
or will it not work at all?

Thanks again Dave.


/Brian

_________________________________________________________________
Use video conversation to talk face-to-face with Windows Live Messenger.
http://www.windowslive.com/messenger/connect_your_way.html?ocid=TXT_TAGLM_WL_Refresh_messenger_video_042008

Reply via email to