DEV Community

Cover image for How to setup Clouseau for  CouchDB search on Unix-like systems

How to setup Clouseau for CouchDB search on Unix-like systems

Jordan Soo Yen Yih on November 23, 2021

Introduction Clouseau is written in Scala code and provides access to the Lucene library. You can use Lucene Query Syntax to run search ...
Collapse
 
efinley1272 profile image
efinley1272

I followed this procedure (used version 2.21.1 instead of 2.17), but didn't get "search" in the "features" output of couchdb. clouseau is running as verified by systemctl status clouseau, but I don't get any logging from clouseau to troubleshoot because of:
SLF4J: Failed to load class "org.slf4j.impl.StaticLoggerBinder".
SLF4J: Defaulting to no-operation (NOP) logger implementation

I'm flailing in the dark when it comes to Java. Any pointers would be appreciated.

Collapse
 
yenyih profile image
Jordan Soo Yen Yih • Edited

Hi efinley, May I know what CouchDB version you are using? And, did you create any search index? If yes, you may try to query with the search index, because recently I have experienced the same issue on one of my CouchDB server and I need to query with the search index one time then only the "search" will show in the "features". Let me know whether it works for you.

Collapse
 
efinley1272 profile image
efinley1272

I'm using version 2.21.1. I have NOT tried creating a search index and searching with it. I will try that and report back.

Thread Thread
 
yenyih profile image
Jordan Soo Yen Yih

oh... you can't use CouchDB v2 and lower. You must use CouchDB v3 and higher as I said in the article above

Thread Thread
 
efinley1272 profile image
efinley1272

Sorry, I mean the version of Clouseau is 2.21.1 the version of CouchDB is 3.2.2.

Thread Thread
 
yenyih profile image
Jordan Soo Yen Yih

I see. Then you may try to create a search index and query it.

Thread Thread
 
efinley1272 profile image
efinley1272

Sorry for taking so long to reply. Life got crazy and I just got back to it today. I added a database 'test', then the 'search' feature showed up. I did NOT create a search index or even add any documents to the 'test' database. I did NOT check for the search feature today before adding the test database so I'm not sure whether it was adding the database or just waiting that made the feature show up.

Thread Thread
 
yenyih profile image
Jordan Soo Yen Yih

I see. Do you mind sharing the server spec you are using? This is because from my experience, low server spec is another possibility that will cause the search feature late to show up.

Thread Thread
 
efinley1272 profile image
efinley1272

This is running inside an LXD container, which is running in a Ubuntu virtual machine with 16GB RAM and 4 processors, which is running on bare metal hardware with 88 processors and 1.5TB RAM. It's the only VM on that hardware, so no contention for resources.

Interesting data point, I haven't done anything AT ALL with the database since I last posted that the 'search' feature showed up. When I queried it today, the 'search' feature is missing again. This is really depressing. Any pointers on getting logging working for Clouseau 2.21.1 would be greatly appreciated.

Thread Thread
 
efinley1272 profile image
efinley1272

I'm replying to my own comment because I have some relevant data points. I was able to get logging working by putting slf4j-simple.jar in the classpath as mentioned in some of the other comments. The search feature showed up and started working after creating a search document and adding a record. I appreciate all the help from this blog and from Jordan's comments. Thank you.

I'm very much looking forward to Nouveau. Anyone know the timeline on that?

Collapse
 
okeribok profile image
Mies Buis • Edited

Thanks for the tut! Hoping someone could help me, because I get

{"error":"ou_est_clouseau","reason":"Could not connect to the Clouseau Java service at clouseau@127.0.0.1"}
Enter fullscreen mode Exit fullscreen mode

I am running couchdb 3.2.2 and clouseau 2.21.2. The systemctl status is "available" and I fixed a slf4j error by placing a slf4j-simple jar in the classpath. I built a simple index (as discussed here), rebooted a couple of times, but: nothing. The log in systemctl status gives me:

INFO scalang.node.ErlangHandler - channel disconnected org.jboss.blablabla
ERROR scalang.node.ServerHandshakeHandler - Channel closed during handshake
Enter fullscreen mode Exit fullscreen mode

Can anybody help me find clouseau?

Collapse
 
yenyih profile image
Jordan Soo Yen Yih

Hi... Seems like your CouchDB can't find Clouseau. When you curl 127.0.0.1:5984 , it didn't show the Search feature right?

Collapse
 
okeribok profile image
Mies Buis

Thanks. That is correct. I do not see the search feature when I curl CouchDB, but I was not worried because of what I read in these comments. I also managed to solve the fact that Clouseau moved to another logging solution, which is not in this tutorial. (I added an slf4j-simple.jar in my Clouseau dir). The log for Clouseau shows everything copacetic untill I try to use search. Then the connection drops and times out in the browser with the "ou est clouseau" error.
I am thinking of moving to a "real" Solr installation instead. This also gives me Lucene 9 whereas Clouseau is Lucene 6 I think. I have not looked into the differences yet.
Hoping some CouchDB devs get around to actually including FTS and all nice features such as true faceting in CouchDB 4.

Thread Thread
 
yenyih profile image
Jordan Soo Yen Yih

According to CouchDB devs latest update, there is no CouchDB 4 yet and one thing confirmed that there are no new features in CouchDB 4. But the good news is, they are currently working on some new features for CouchDB v3.3.0. One of the new features is the new Full-text search for CouchDB called Nouveau which supports Lucene 9 + DropWizard. github.com/rnewson/nouveau . If everything goes well according to the plan, then we can have the new full-text search in CouchDB v3.3.0😊

Thread Thread
 
okeribok profile image
Mies Buis

That is excellent news! When I looked further, there was talk about moving CouchDB on top of FoundationDB, which might have been the "4" I had seen "somewhere", but apparently IBM would have funded the move and pulled the plug this march.
I will look into Nouveau and hope an official release comes soonish. Some QOL improvements in Fauxton would be nice too.

Thread Thread
 
yenyih profile image
Jordan Soo Yen Yih

Yup, you are right, they did discuss about that before. But last week CouchDB Berlin Meetup, Janl just announced that no FoundationDB for CouchDB 4. If you ever heard about it before, then just pretend nothing happened or forget about it. 🤣

Collapse
 
cortescasado profile image
Alvaro Cortes • Edited

Hi Jordan, thanks for your tutorial, is by far clearer than official documentation installing, however I don't get the search working.
The clouseau.service loads right but it fails when I try to start it without any log message. Any idea?

Collapse
 
yenyih profile image
Jordan Soo Yen Yih • Edited

Hi Alvaro Cortes, did you try to use systemctl status clouseau.service to check the clouseau status? Btw, I ever experience that clouseau service slow to bootup due to server instance resources not enough, in this scenario, clouseau didn't throw any error message and when I checked on the CouchDB features list, there is no "search" feature show up. But after a time of period, It did appeared and was connected successful. I am not sure whether it is the same issue you have encountered, but you may try to use systemctl or check on CouchDB logs see any hints from there.