简体   繁体   中英

Can we customize Lucene which is embedded in Solr?

Can we customize Lucene which is embedded in Solr just as we can in raw Lucene ? So that we can have "everything" that we have in Lucene in Solr ?

I am asking this because we are stuck at a point of deciding Solr vs Lucene, thinking like so :

Argument 1 :

"We might hit a dead zone in future if we choose Solr, and Lucene is a better choice hence... So we might as well start writing HTTP wrappers and almost half of Solr ourselves on top of Lucene to be on safer side. "

Argument 2 :

"Solr already has all the features we want to use, so why not just use it ? Since people who commit to Lucene are also responsible for committing to Solr, all features of Lucene are available to Solr too..."

I went through many blogs and posts that say something like :

For situations where you have very customized requirements requiring low-level access to the Lucene API classes, Solr would be more a hindrance than a help, since it is an extra layer of indirection.
-http://www.lucenetutorial.com/lucene-vs-solr.html

One way of defending Argument 2 is by confirming that we can customize the underlying Lucene in Solr just like we would do if we had only Lucene.

Can someone provide a better way of closing this argument ? :)

ps : We need a fast search with indexing and sharding terabytes of data...

Can we customize Lucene which is embedded in Solr ?

Yes, you can . But keep this in mind:

Lucene and Solr committers are some of the foremost experts in the field of full-text search. They have several years of experience in this field. If you think you can do better than them, then go ahead and change Solr to your needs (it's Apache-licensed so there aren't any commercial restrictions), and if you do so try to do it so that you can later contribute it back to the project so everyone can benefit and the project moves forward.

For the vast majority of Solr users though, the stock product is more than enough and satisfies all needs.

In other words, before jumping in to change the code, ask on a mailing list (stackoverflow or solr-user), there's a good chance that you don't really need to change any code.

"Fast search with indexing and sharding terabytes of data" is precisely what Solr was built for. It would be a bad case of Not-Invented-Here not to use it or any of the other similar solutions, such as ElasticSearch, Sphinx, Xapian, etc. If you think you'll need to customize or extend the search server in any way, consider the license and underlying code of each one. Solr and ElasticSearch are both Apache-licensed so they don't have commercial restrictions and are built on top of Lucene, a well-known library.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM