views:

290

answers:

2

Zend Lucene and Java Lucene are built in PHP and java repectively, and PHP language has a higher level than java.

Just wondering How big the performance difference among these two, regarding to index building and data searching?

Is it much more effective to let java create and rebuild index, and let php use the index?

+1  A: 

When I asked this question of a Zend Evangelist and one of their hired guns, I was told the Java Lucene would provide substantially better performance. Their main points dealt with the handling of UTF8 characters and the speed of indexing (if I remember properly). Apparently Java Lucene is far better at this.

http://stackoverflow.com/questions/1254759/does-zend-lucene-need-java-lucene/1316756#1316756

Inkspeak
+3  A: 

This is a quote from a Zend Certified Engineer.

Against my better judgment, the company I work for migrated our previous search solution to Zend_Search_Lucene. On pretty heavy-duty hardware, indexing a million documents took several hours, and searches were relatively slow. The indexing process consumed vast amounts of memory, and the indexes frequently became corrupted (using 1.5.2). A single wild card search literally brought the web server to its knees, so we disabled that feature. Memory usage was very high for searches, and as a result requests per second necessarily declined heavily as we had to reduce the number of Apache child processes.

We have since moved to Solr (a Lucene-based Java search server) and the difference is dramatic. Indexing now takes around 10 minutes and searches are lightning fast. What a difference a language makes.

Original Article

In this case, Java.

Jarrod
Ditto Inkspeak as well.
Jarrod
Thanks. I thnk I would still stick to Zend_Search_Lucene at the beginning for handy development with Zend framework. I then move on to advanced solutions once the performance is unacceptable. Also, Zend Lucene is compatible with index built by java Lucene. So I can easily make a shift to JAVA Lucene indexing in the future
Carson
Here's a tip - when developing abstract your search calls so that you can easily plugin whatever search engine you choose to use. This will save you time should you ever need to re-engineer your code for a different data source.
Jarrod
nice idea. I will keep it in mind :)
Carson