I'm working on site-wide search currently. I first tried site-wide search from the OpenACS CVS repository. It works a bit, but not with the amount of data I am required to work with. E.g. creating the index already takes ages. Inspecting the code manually gives me the suspicion that it isn't too efficient in real life - a lot of pl/sql in sql functions, weirdly-coded sql queries etc. Is someone using this in real life? If so, what's your amount of data? And do you have a working forums search?
I decided to port ACES 3' SWS with which I had worked before so I am quite comfortable with it. Now I am facing two "site-wide" problems which were solved on the ShareNet project and may have been solved in OpenACS and I don't know about it.
Firstly, is there a generic "read" or "view" permission that I can try on *every* object? E.g. file-storage uses "read" to check whether a user has permission, news uses "news_read".
(If I remember correctly for ShareNet we added a generic "view" permission so we could check permissions in site-wide packages without intimate knowledge of the inner workings of a package's permissions.)
Then "stable URLs" (/o URLs) were a way of defering the URL calculation.
My fix for these two problems: add a mapping table that contains information for permission and URL stub. E.g. news would get "news_read" as the required permission and "item?item_id=" as the URL stub. Is that reasonable?