I remember a talk by CareerBuilder whe they wrote an API using the approach 
explained by Alexandre and they got really good results.

----- Original Message -----
From: "Anurag Sharma" <anura...@gmail.com>
To: solr-user@lucene.apache.org
Sent: Saturday, November 8, 2014 7:58:48 AM
Subject: Re: How to dynamically create Solr cores with schema

For more advanced dynamic fields refer dynamicField elements convention
patterns for fields from the below schema.xml
http://svn.apache.org/repos/asf/lucene/dev/trunk/solr/server/solr/configsets/basic_configs/conf/schema.xml

solr create core api can be referred to create a core dynamically. e.g.
curl "
http://localhost:8080/solr/admin/cores?action=CREATE&name=$name&instanceDir=/etc/solr/conf/$name
"


On Fri, Nov 7, 2014 at 10:29 PM, Alexandre Rafalovitch <arafa...@gmail.com>
wrote:

> The usual solution to that is to have dynamic fields with suffixes
> indicating the types. So, your int fields are mapped to *_i, your date
> fields to *_d.
>
> Solr has schemaless support, but it is auto-detect for now. Creating
> fields of particular types via API I think is in JIRA on the trunk for
> 5.0.
>
> Regards,
>    Alex.
> Personal: http://www.outerthoughts.com/ and @arafalov
> Solr resources and newsletter: http://www.solr-start.com/ and @solrstart
> Solr popularizers community: https://www.linkedin.com/groups?gid=6713853
>
>
> On 6 November 2014 10:04, Andreas Hubold <andreas.hub...@coremedia.com>
> wrote:
> > Hi,
> >
> > I have a use-case where Java applications need to create Solr indexes
> > dynamically. Schema fields of these indexes differ and should be defined
> by
> > the Java application upon creation.
> >
> > So I'm trying to use the Core Admin API [1] to create new cores and the
> > Schema API [2] to define fields. When creating a core, I have to specify
> > solrconfig.xml (with enabled ManagedIndexSchemaFactory) and the schema to
> > start with. I thought it would be a good idea to use a named config sets
> [3]
> > for this purpose:
> >
> > curl
> > '
> http://localhost:8082/solr/admin/cores?action=CREATE&name=m1&instanceDir=cores/m1&configSet=myconfig&dataDir=data
> '
> >
> > But when I add a field to the core "m1", the field actually gets added to
> > the config set. Is this a bug of feature?
> >
> > curl http://localhost:8082/solr/m1/schema/fields -X POST -H
> > 'Content-type:application/json'
> >   --data-binary '[{
> >         "name":"foo",
> >         "type":"tdate",
> >         "stored":true
> >     }]'
> >
> > All cores created from the config set "myconfig" will get the new field
> > "foo" in their schema. So this obviously does not work to create cores
> with
> > different schema.
> >
> > I also tried to use the config/schema parameters of the CREATE core
> command
> > (instead of config sets) to specify some existing
> solrconfig.xml/schema.xml.
> > I tried relative paths here (e.g. some level upwards) but I could not
> get it
> > to work. The documentation [1] tells me that relative paths are allowed.
> > Should this work?
> >
> > Next thing that would come to my mind is to use dynamic fields instead
> of a
> > correct managed schema, but that does not sound as nice.
> > Or maybe I should implement a custom CoreAdminHandler which takes list of
> > field definitions, if that's possible somehow...?
> >
> > I don't know. What's your recommended approach?
> >
> > We're using Solr 4.10.1 non-SolrCloud. Would this be simpler or different
> > with SolrCloud?
> >
> > Thank you,
> > Andreas
> >
> > [1]
> >
> https://cwiki.apache.org/confluence/display/solr/CoreAdmin+API#CoreAdminAPI-CREATE
> > [2]
> >
> https://cwiki.apache.org/confluence/display/solr/Schema+API#SchemaAPI-Modifytheschema
> > [3] https://cwiki.apache.org/confluence/display/solr/Config+Sets
>

Reply via email to