I don't know much about HAYSTACK, but for the Solr URL you probably
want the "shards" parameter for searching, see:
https://cwiki.apache.org/confluence/display/solr/Distributed+Search+with+Index+Sharding

And just use the specific core you care about for update requests.

But I would suggest that you can have Solr do much of this work,
specifically SolrCloud with "implicit" routing. Combine that with
"collection aliasing" and I think you have what you need with a single
Solr URL. "implicit" routing allows you to send docs to a particular
shard based on the value of a particular field. You can add/remove
shards at will (only with the "implicit" router, not with the default
compositeID router". Etc.

I've skimmed over lots of details here, I just didn't wan you to be
unaware that a solution exists (see "time series data" in the
literature).

Best,
Erick

On Tue, Mar 14, 2017 at 8:06 AM, serwah sabetghadam
<sabetgha...@ifs.tuwien.ac.at> wrote:
> Hi all,
>
> I am totally new to this group and of course so happy to join:)
> So my question may be repetitive but I did not find how to search all
> previous questions.
>
>
> problem in one sentence:
> to read from multiple cores (archive and active ones), write only to the
> latest active core
> using Solr and Haystack
>
>
> I am designing a periodic indexing system, one core per months, of which
> always the last two indexes are used to search on, and always the last one
> is the active one for current indexing.
>
>
> We are using Haystack to manage the communications with Solr.
> We can use multiple cores in the settings.py in Haystack, that is totally
> fine.
> The problem is that in this case, as I have tested, both cores are getting
> updated for new indexing.
>
> Then I decided to use the "--using" parameter of Haystack to select which
> backend to use for updating the index, sth like:
>
> ./manage.py update_index events.Event --age=24 --workers=4 --using=default
>
> that in default part in the settigns.py file I have defined the active
> core.
> HAYSTACK_CONNECTIONS = {
>     'default': {
>         'ENGINE': 'haystack.backends.solr_backend.SolrEngine',
>          'URL': 'http://127.0.0.1:8983/solr/core_Feb',
>           },
>      'slave':{
>           'ENGINE': 'haystack.backends.solr_backend.SolrEngine',
>           'URL': 'http://127.0.0.1:8983/solr/core_Jan',
>      },
>  }
>
> here core_Feb is the active core, or is going to be the active core.
>
> then now I am not sure this way it will read from both. Now I can manage
> the write part, but again problem with reading from multiple cores. What I
> tested before for reading from multiple cores was like :
>
> HAYSTACK_CONNECTIONS = {
>     'default': {
>         'ENGINE': 'haystack.backends.solr_backend.SolrEngine',
>          'URL': 'http://127.0.0.1:8983/solr/core_Feb',
>           'URL': 'http://127.0.0.1:8983/solr/core_Jan',
>      },
>  }
>
>
> but in this case it will write in both! that I want to write only in the
> core_Feb one.
>
> Any help is highly appreciated,
> Best,
> Serwah

Reply via email to