On May 16, 2019, at 1:25 PM, Eric Lease Morgan <[email protected]> wrote:
>
> Is it possible to create a Solr index, copy the file(s) to my local machine,
> and query the index sans the Solr server?
That's a bit tricky, but possible. It's a Lucene index, which is just a
directory of binary files. The trick to querying it, sans Solr, will be to
write Java code using the Lucene API - and to synchronize your
analysis/tokenization with how it was indexed. That last part is the
challenge since you'll have a Solr schema (in schema.xml or managed-schema)
that won't be useful in a pure Lucene API using app.
There is one other option above using the lower level Lucene API, and that's to
use Solr's EmbeddedSolrServer, which is a Java API that launches an in-process
"Solr" (but not over HTTP, just in process Java API) - that will allow you to
leverage the Solr schema and everything else just like it was Solr over the
wire.
Personally, I'd fire up a real Solr server locally with the Solr configuration
and use localhost - which will be the easiest way to get a foreign Solr
collection running locally.
> SQLite works like that. There is no server. I can use SQLite to create a
> file, copy the file to a different computer (even a different operating
> system), and use a SQLite client on the different machine. In fact, there are
> bunches o' API's I can use to query the SQLite file.
Yeah, that's equivalent Solr's EmbeddedSolrServer API. But does require
writing Java (or JVM, like say JRuby!) code to leverage it. [I could imagine
a Solr feature request that makes a simpler client, but it'd probably get
pushback saying "just use Solr over HTTP locally"]
> Solr is a great indexer, IMHO, but if I were able to copy the index file
> locally, and query it without the server, then I think Solr would be even
> greater.
Or query it remotely?
Erik