Hacker News new | ask | show | jobs
by simonw 1736 days ago
The good news here is that the Confluence API is actually really good, and very easy to integrate with.

I wrote a custom search engine that worked by running on cron, pulling in all of the content from Confluence and writing it into a SQLite table with SQLite full-text search enabled (using https://sqlite-utils.datasette.io/en/stable/python-api.html#...), then sticking a https://datasette.io/ interface in front of it.

4 comments

On one level that's great and I'm certainly glad you made it work.

On another level, and bearing in mind that Confluence is a paid product, this absolutely should not be necessary and competent search is something that Atlassian should provide out of the box.

(Yes, I have beef with Confluence, but in my case it's primarily due to the historically awful editing experience.)

The API for writing docs/content to confluence is the worst i've ever seen. You are expected to use their custom syntax which then gets converted again before rendering.

The docs for the POST content literally says to write what you want in confluences WYSIWYG, then do a GET API call to see what it should look like.

It seems to me that the big problem with Confluence search (once you have a lot of pages) is that the results have poor relevance ranking. Wouldn't tossing the content into SQLite have the same problem?
Have you shared the code or any more details for that custom search engine anywhere? I'd love to see how you did that. I'm considering doing the same thing soon