NoSQL? To me it's just a marketing term, like Big Data.
Data store? That does imply support for persistence, as opposed to mere
caching, but mere persistence doesn't assure that the store is suitable for
use as a System of Record which is a requirement in my view for a true
database. So, I wouldn't assert that a data store is a database.
None of these are hard-edged definitions. I mean, even a simple text file
format, like an mbox file can be a system of record, if given a suitable
front end for access.
For the most part NoSQL simply means that the software seeks to optimize on
factors other than the pure ACID and the rich feature set of traditional SQL
databases (e.g., complex JOIN queries.) Maybe the NoSQL database/data store
is much faster, or much more scalable or distributed, much simpler, or
somehow optimal for some sorts of applications that traditional SQL
databases falls short on. By abandoning or restricting one or more
traditional SQL attributes or features, a NoSQL database/data store permits
application developers to focus on the data storage and access criteria that
are most important to their particular application.
My only point is that suitability as a System of Record is a hard-core
requirement for a true database in my view, and Solr is still a bit soft in
that area, if only because its focus is on being a search platform with a
heavy emphasis on indexing data that is sourced from external databases/data
stores. I mean, questions about DIH are quite common and that wouldn't be
the case if people were using Solr as their System of Record in the first
place.
Hey, if somebody wants to add Solr to the wikpedia NoSQL page, I don't think
there would be a ton of objection, in short because NoSQL is still a fluid,
fuzzy area with no strict requirements. And Elasticsearch is on that page
already.
I would note that ES bills themselves as "a flexible and powerful open
source, distributed, real-time search and analytics engine" rather than a
"database" or "NoSQL database/data store." As with Solr, they are clear
about their focus. Solr bills itself as a "blazing fast open source
enterprise search platform."
See:
http://www.elasticsearch.org/overview/
https://lucene.apache.org/solr/
As I indicated before, sure, Solr can indeed be used as a NoSQL database
(given the fuzziness of that marketing term.) I'm sure there are plenty of
apps out there that can use Solr itself for their System of Record, but
there are still plenty of applications where Solr's indexing and search
features still don't qualify it for the hard-core requirements needed for a
System of Record or where strict ACID and heavy real-time updates are
required.
It's up to the individual application project to make all of these
suitability judgments.
-- Jack Krupansky
-----Original Message-----
From: Furkan KAMACI
Sent: Saturday, March 1, 2014 5:46 PM
To: solr-user@lucene.apache.org
Subject: Re: Solr is NoSQL database or not?
Hi;
The first link you provided includes ElasticSearch:
http://en.wikipedia.org/wiki/NoSQL as a Document Store and plus a note that
it is a search engine. What are the main differences between ElasticSearch
and Solr that makes ElasticSearc a NoSQL store but not Solr. I think that
these are conceptual things and such kind of references as like Wikipeda
should not be the *only* reference.
I like this paper:
http://www.thoughtworks.com/insights/articles/nosql-comparison and it
explains the common features of NoSQL data stores as:
* Easy to use in conventional load-balanced clusters
* Persistent data (not just caches)
* Scale to available memory
* Have no fixed schemas and allow schema migration without downtime
* Have individual query systems rather than using a standard query language
* Are ACID within a node of the cluster and eventually consistent across
the cluster
However some others explain it differently. For example one says common
features of NoSQL databases is that: *"What they have in common is that
they're not relational. Their primary advantage is that, unlike relational
databases, they handle unstructured data such as word-processing files,
e-mail, multimedia, and social media efficiently."*[Leavitt, N., "Will
NoSQL Databases Live Up to Their Promise?," Computer , vol.43, no.2,
pp.12,14, Feb. 2010]
I think that there is not a standard explanation for What is NoSQL. If we
consider Solr as a NoSQL data store then we should consider that its
primary objective is being a search engine. So it reminds some questions
that is specific for a search engine as like deep paging. Basically if
there is no limitation for such specific problems and if you have answers
for that problems i.e. retrieving documents without scoring them as a
stream then I think that these type of data stores are one of powerful
NoSQL data stores. Reindexing the data maybe another problem to consider.
However even if you still have such kind of problems you can still consider
them as a NoSQL. There may be some data stores that is accepted as a NoSQL
but have some big limitations.
All in all, I think that there is not a reference definition for NoSQL.
According to me SolrCloud is a so powerful search engine and it can be used
and considered as a NoSQL data store. However if you want to use Solr
(SolrCloud) as a NoSQL datastore you should consider what are your
requirements and do you really need it.
Thanks;
Furkan KAMACI
2014-03-01 17:58 GMT+02:00 Gopal Patwa <gopalpa...@gmail.com>:
Well said Jack, we are using Solr as NoSQL solution as Jack describe from
Solr version 3.x and still using it in Production with 4.x and on our
Stubhub site most visited page.
https://m.stubhub.com/los-angeles-kings-tickets/los-angeles-kings-los-angeles-staples-center-1-3-2014-4323511/
On Sat, Mar 1, 2014 at 6:14 AM, Jack Krupansky <j...@basetechnology.com
>wrote:
> A database is a place you store information for relatively permanent
> reference, called a "system of record". Most commonly data is accessed
by a
> primary key. Update of existing data by individual row is a common
> operation.
>
> Solr is a "search server" or "search platform". The focus of a search
> server is to support rapid and relevant rich search, especially keyword
> text search. Data itself usually lives elsewhere, but is loaded into the
> search server whenever it changes, a process known as "indexing". It is
not
> uncommon with a search server to "reindex" data, which means to throw
> all
> the data away and start over, rereading the data from its source(s)
> (system(s) of record). Update of existing data is usually in "batches",
not
> individual rows. Data tends to be added rather than updated.
>
> Commonly a search server is used in conjunction with some number of
> databases.
>
> Can one use Solr as a database as well? Sure, its possible, but that's
not
> its primary and most popular use at this point.
>
> I mean, what's one of the most commonly used verbs on the Solr email
list?
> We're always telling people to "reindex". Can you imagine database
> developers being told that they must delete all their existing data and
> "start over"?
>
> -- Jack Krupansky
>
> -----Original Message----- From: nutchsolruser
> Sent: Friday, February 28, 2014 11:09 PM
> To: solr-user@lucene.apache.org
> Subject: Solr is NoSQL database or not?
>
>
> You may think this is silly question but let me ask this because i am
> confused ,
> http://www.lucidworks.com/webinar-solr-4-the-nosql-search-server/ this
> says
> Solr is NoSQL but many other links dont have solr in their list as NoSQL
> database.
>
> http://en.wikipedia.org/wiki/NoSQL
> http://en.wikipedia.org/wiki/Document-oriented_database
>
> it's really confusing what is real meaning of NoSQL database?
>
>
>
> --
> View this message in context: http://lucene.472066.n3.
> nabble.com/Solr-is-NoSQL-database-or-not-tp4120554.html
> Sent from the Solr - User mailing list archive at Nabble.com.
>