I am confused with the near-real-time search ability of Solr and Elasticsearch. The near-real-time search is argued to be one of the advantages Elasticsearch has over Solr. However, I have read some documents of Solr saying that near-real-time search also can be done on Solr by using soft commit with the cost of open new searcher. By doing so, the new document is visible in 1 second. In Elasticsearch, the refresh can also make a new document available to search within one second. Did I miss or misunderstand anything? Which one does better on real time search? Any answer would be appreciated. Thank you.
Solr vs Elasticsearch on near real time search
3.1k Views Asked by Kuang Lu At
1
There are 1 best solutions below
Related Questions in SOLR
- Developing a search and tag heavy website
- How can I integrate Solr5.1.0 with Nutch1.10
- Solr ping taking time during full import
- Indexed data is not displaying on storefront
- Heap size issue on migrating from Solr 5.0.0 to Solr 5.1.0
- Monolithic ETL to distributed/scalable solution and OLAP cube to Elasticsearch/Solr
- Exact word not boosting much Solr
- Solr stopped with Error opening new searcher at org.apache.solr.core
- Data import in solr from multiple entities
- solr reindexing issue for EdgeNgramFilter
- Heap memory Solr and Elasticsearch
- How to index documents with their metadata in a DB using Solr 5.1.0
- Isnull equivalent in SOLR
- SolrNet query not working for Scandinavian characters
- Query always the same with Sunspot/Solr on rails
Related Questions in ELASTICSEARCH
- Elasticsearch schema for multiple versions of the same text
- Elasticsearch nested filter query
- Elasticsearch data model
- search with filter by token count
- Usage of - operator in elasticsearch
- Running multiprocessing on two different functions in Python 2.7
- How to get an Elasticsearch aggregation with multiple fields
- How to implement custom sort in elasticsearch?
- Custom Analyzer not working Elasticsearch
- How to implement full text search using Elasticsearch in Rails?
- UnresolvedAddressException in Logstash+elasticsearch
- Elasticsearch Fiddler No DNS
- Monolithic ETL to distributed/scalable solution and OLAP cube to Elasticsearch/Solr
- how to disable page query in Spring-data-elasticsearch
- Create Custom Analyzer after index has been created
Related Questions in NEAR-REAL-TIME
- Is there a way to find out the documents updated/written during a day to a solr index
- Near real time streaming data from 100s customer to Google Pub/Sub to GCS
- How can I programmatically realistically modify a video clip while playing?
- How are Node.js+Socket.io+MongoDB webapps truly asynchronous?
- Reduce TTFB on PHP empty file
- Fastest and most efficient upsampling routine for Audio in Java
- how can I use Solr to do real-time search
- Lucene near real time search
- why is spark streaming called near real time?
- PostgreSQL to Data-Warehouse: Best approach for near-real-time ETL / extraction of data
- shell_exec() in PHP
- What are the realtime communication protocols available for the web?
- Real Time Notification for Angular 2 web app with asp.net web API back end
- How Do I do Real Time Sound/Signal Processing On The iPhone?
- Solr vs Elasticsearch on near real time search
Trending Questions
- UIImageView Frame Doesn't Reflect Constraints
- Is it possible to use adb commands to click on a view by finding its ID?
- How to create a new web character symbol recognizable by html/javascript?
- Why isn't my CSS3 animation smooth in Google Chrome (but very smooth on other browsers)?
- Heap Gives Page Fault
- Connect ffmpeg to Visual Studio 2008
- Both Object- and ValueAnimator jumps when Duration is set above API LvL 24
- How to avoid default initialization of objects in std::vector?
- second argument of the command line arguments in a format other than char** argv or char* argv[]
- How to improve efficiency of algorithm which generates next lexicographic permutation?
- Navigating to the another actvity app getting crash in android
- How to read the particular message format in android and store in sqlite database?
- Resetting inventory status after order is cancelled
- Efficiently compute powers of X in SSE/AVX
- Insert into an external database using ajax and php : POST 500 (Internal Server Error)
Popular Questions
- How do I undo the most recent local commits in Git?
- How can I remove a specific item from an array in JavaScript?
- How do I delete a Git branch locally and remotely?
- Find all files containing a specific text (string) on Linux?
- How do I revert a Git repository to a previous commit?
- How do I create an HTML button that acts like a link?
- How do I check out a remote Git branch?
- How do I force "git pull" to overwrite local files?
- How do I list all files of a directory?
- How to check whether a string contains a substring in JavaScript?
- How do I redirect to another webpage?
- How can I iterate over rows in a Pandas DataFrame?
- How do I convert a String to an int in Java?
- Does Python have a string 'contains' substring method?
- How do I check if a string contains a specific word?
At the end of the day, they both use lucene under the hood. Near real-time search in lucene means reopening the index reader, called refresh in elasticsearch and exposed through the refresh api.
On the other hand you need to commit the lucene index too to have durability, which is expensive and cannot be done every second, and that is why elasticsearch has a transaction log and what makes elasticsearch "kill -9 safe", and allows also for real-time get.
But the best part to me is that in elasticsearch the user doesn't have to worry about refreshes and commits too much, as everything happens automatically under the hood, by default. At the same time, there are apis (refresh and flush) as well as settings that allow to change the default behaviour for power users.