Forum OpenACS Development: Need help with Site-wide-search and search packages


I currently trying to install the site-wide-search package for OpenACS 5.0.rc1 (still...). I've seen at the doc that it's an unistalled package. What does this really mean?
I've downloaded the OpenACS 5 tarball but I found no package named site-wide-search. Only the search package.
I mounted this package but I got this error:

invalid command name "ad_site_wide_search_widget"

The package search needs a function called ad_site_wide_search_widget wich is found in the site-wide-search-defs.tcl. But this file was installed with the site-wide-search OpenACS 4.x package. Then, what is the status? Is there somebody already porting the 4.x site-wide-search package into OpenACS 5? Or is the package already available for OpenACS 5?

Thank for your help!

Alejandro Beya

Posted by Caroline Meeks on
Hi Alejandro.

Installing search is a multistep process but once you have everything installed it works fine with OpenACS5.

There is installation documnentation with the package and here is some additional documentation from Dave Bauer.

Posted by Alejandro Beya on
Hi Caroline!

I'm sorry I didn't mention before the fact that I'm using Oracle 8.1.7 with Intermedia and not PostgreSQL.
Any other idea?

Thanks a lot!

Alejandro Beya

Posted by Dirk Gomez on

I worked on this version of the site-wide-search package about 2 years ago and it was very broken especially if you added more than a couple of dozen rows.

I recently played with search for Oracle again. See the results here: OpenACS Search proposal. Development is on hold till I get at least some funding.

Posted by Alejandro Beya on
Hi Dirk! I was just about to send you and e-mail! I have been searching information about this issue and I came up with your OpenACS Search proposal. I found it very interesting. I was wondering if, since you wrote that, you had advanced work or if you knew someone who had finished porting to OpenACS 5 this package. This package is so important for Project/Knowledge that if we don't find the package for OpenACS 5 with Oracle, we will port it ourselves from OpenACS 4.x We wanted first to ask the community if this was done so we could save time. Dirk, greetings from Frank. Bests, Alejandro Beya
Posted by Dirk Gomez on
I doubt you'll find the code useful. It requires short urls, central package_ids etc all of which is available on the site I was developping against.

Your best bet is to take ACES' site-wide-search which is imho the best freely availabe OpenACS/ACS site-wide-search implementation and port it to OpenACS5.

Dirk, you're saying the ACES site-wide-search package is substantially better than the Oracle site-wide-search currently in OpenACS CVS, and we should port it to OpenACS 5.x? Can you give us more info on why that is, and how that situation came to be?
Posted by Dirk Gomez on
The code in the repository was the basis for site-wide search on the ShareNet
project and I recently talked to the guy who was the lead developer on this
and his comment was: "To save time you better start from scratch".

Here's the bit that I experienced (I worked on it as well):

* Its performance with real-life amount of data was simply awful.

* It didn't work with umlauts.

* It has a lot of weird, weird code like if's that are always true, dynamic
  ddl, abstraction layers etc.

Given that no-one has worked on it for more than two years it should be even
more useless to use it. E.g. it still indexes the forums packages which has
been deprecated a long time ago.

The ACES solution is the ACS3 solution which has worked in this way or another
on many ACS-backed sites, I worked about two years with it and I find it
pretty reasonable, so I think it is sound approach to port it.

Posted by Don Baccus on
"Site-wide search is the king of all packages.
The Goal

The goal is to to implement a well-performing and feature-rich site-wide-search solution for OpenACS based on Oracle Intermedia (or Oracle Text for the 9i people)"

So the king of all packages will be Oracle-only?

We need a search solution that works for both RDBMS's, which implies an approach similar to the non-Oracle search package ... separation of search UI and search engine.

Posted by Dirk Gomez on
My proposal would be portable to PostgreSQL without much trouble and is based to large part on things like et al.

But (as posted here or somewhere else on Work is on hold anyway.

Don, OpenACS isn't, but definitely is Oracle-only, right?

From reading it, Dirk's title on that working paper, "... specifically in AIESEC.NET", is accurate but the description he gave when linking to it above, "OpenACS Search proposal", definitely is not. It is only about AIESEC's website, and is very brief even on that; it doesn't really touch on the bigger OpenACS-in-general picture at all.

Dirk, it would be quite useful if you could extend that paper into a "Site-Wide Search in AIESEC.NET, and in OpenACS in general" proposal, with compare and contrast between AIESEC and OpenACS, practical lessons learned from AIESEC and/or other live sites, etc.

Posted by Ben Koot on
Hi folks,
Maybe a stupid question, but from this discussion it looks like sitewide search does not exist in a presentable format. Neither in oracle nor in Postgress. Why don't take it out of the package manager, untill their is a version that will work upon install, without all the confusion? (or at least put a statemnet in the installation process about the current state of the package?

At each new release I install the packge, and expect it will work, but it doesn't. I guess it's easier for end users not have an option to install.

I understand your enthousiasm, and it would indeed be a great contribution if the would exist. At the same time it would save people a lot of frustration trying to figure out why it doen's work,


p.s Have been playing with 5 for quite some time now, and realy like what you've put yogether, a great job !!!

Ben, oh the various search packages for both PostgreSQL and Oracle seem to work, the open question is how well they each actually work in practice, and what should be done to make them work better.

Btw, I ran the ACS 4.2 Oracle site-wide-search package on a small site for quite a while, and noticed and band-aided various random problems. At some point it just stopped working at all and even though I tried briefly, I never did figure out why. But by then requirements and priorities had changed somewhat and we didn't really need to get it working, so we never did. Perhaps these problems were ultimately due to the flaws Dirk touches on above...

Posted by Dirk Gomez on
I will probably do that RSN.

I have only random thoughts currently that need to be structured and funneled into a document. Some of which have to do with I18N which isn't a problem in aiesec, but will be one for OpenACS. See my posts on the danger-head-unstable thread which are search-driven.

There are more random bits. E.g. not only find the package for an object easily, but also the community or subsite so that you can show the "foo meeting in the bar club".

Posted by Dirk Gomez on
Oh yes probably the most important bit is that I don't like the idea of stable URLs anymore. Imagine a search result that shows:

Foo calendar item in bar club.

MP3 folder in music club

So there needs to be an inexpensive way of calculating an object's url with a proper result. Dave has some thoughts on this, maybe he can post them here.

Posted by Dave Bauer on
My ideas for simple URL calculation involve moving the object hierarchy model in cr_items to the acs_object level. This basically means a parent_id column. Don has mentioned this, it  basically could replace context_id in most cases, and well as be a more useful definition of "where" content belongs than package_id.

Right now, site_node information, including URL is stored in an NSV array. If we expand that to include any parent_id, site_node, cr_folder, etc, calculating a URL is as simple as retreiving the url of the parent and appending the url of the object to the end.

Right now, some packages do this in an ad_hoc way with an index.vuh file that figures out an object_id and returns a template. If there is a site-wide object hierarchy this can be centralized, probably handled by the request processor directly.

To allow an object to appear at more than one URL, something similar to cr_symlinks could be used.

I will be exploring how all this works in a content management context and I will try to see how it can be applied site-wide. I believe that if this type of function is enabled, it will not break any existing code, it will just allow more consistent use of pretty urls and make services such as search, categories, and notifications easier to write and to use.

Posted by Jay Dubanik on
Alejandro, If you still need help in setting up SWS on Oracle 8.1.7 please contact me, I think I can help if you get stuck in setting it up.

SWS works fine, but needs tunning, first you have to make sure your Intermedia works, without installing SWS yet, after you do this then you can start SWS install, otherwise the blame is on SWS but most of the time is the Intermedia problem.

If you use Oracle 8.1.7 then make sure INSO Filter is working (I hear that it works on I could never make Intemedia INSO filter to work on

If you dont' plan to use SWS indexing on File-Storage package but only on packages where content is text or html then you dont need INSO filter at all, and use NULL filter instead. This way you also gain speed.

Check my postings about SWS and if you want to see SWS at work follow the link to the website I take care of, forum search is the SWS search.

Hi Jay,

very interesting comment that you never got the INSO filters running with

Do you have an idea where to download the patch from to, or where to get a binary?

And yes, we're planning to index files a lot for a project we've got running...



Frank, what you want is to download the patch to (Or upgrade to 9i of course, something I myself have not yet tried.)