Thanks Erick.
I'm not concerned about the logic, all I want to achieve is sometimes
storing/indexing a multi-valued field and sometimes not (same field with
same name) based on some logic. In a transformer I cannot change the
schema dynamically to do that, not that I know of at least.
So if I define that field in the schema.xml I guess I'm stuck with the
store/indexed true/false and cannot change that at indexing time.
In Lucene you can just do what I had in my original email and the field
will be sometimes stored/indexed and sometimes not without a problem.

Does that make sense?
Thanks,
Maria



Maria Vazquez  |  Manager Software Engineering  |  Dex One
Phone: 310.586.4157

www.DexOne.com <http://www.dexone.com/>  |  www.DexKnows.com
<http://www.dexknows.com/>
 <http://www.dexone.com/>















On 4/30/12 6:08 AM, "Erick Erickson" <erickerick...@gmail.com> wrote:

>Your idea of using a Transformer will work just fine, you have a lot more
>flexibility in a custom Transformer, see:
>http://wiki.apache.org/solr/DIHCustomTransformer
>
>You could also write a custom update handler that examined the
>document on the server side and implemented your logic, or even
>just add an element into an "update chain".
>
>None of these is very hard, but they can be a bit intimidating
>when stating from scratch.
>
>Best
>Erick
>
>On Sun, Apr 29, 2012 at 12:53 PM, Vazquez, Maria (STM)
><maria.vazq...@dexone.com> wrote:
>> Thanks for your response.
>> That's what I need, changes at indexing time. Dynamic fields are not
>>what I need because the field name is the same, I just need to change if
>>they indexed/stored based on some logic.
>> It's so easily achieved with the Lucene API, I was sure there was a way
>>to do the same in Solr.
>>
>>
>> On Apr 28, 2012, at 22:34, "Jeevanandam" <je...@myjeeva.com> wrote:
>>
>>> Maria,
>>>
>>> thanks for detailed explanation.
>>> as per schema.xml; stored or indexed should be defined at design-time.
>>>Per my understanding defining at runtime is not feasible.
>>> BTW, you can have multiValued="true" attribute for dynamic fields too.
>>>
>>> - Jeevanandam
>>>
>>> On 29-04-2012 2:06 am, Vazquez, Maria (STM) wrote:
>>>> Thanks Jeevanandam.
>>>> That still doesn't have the same behavior as Lucene since multiple
>>>> fields with different names have to be created.
>>>> What I want is this exactly (multi-value field)
>>>>
>>>> document.add(new Field("geoids", geoId, Field.Store.YES,
>>>> Field.Index.NOT_ANALYZED_NO_NORMS));
>>>>
>>>> document.add(new Field("geoids", geoId, Field.Store.NO,
>>>> Field.Index.NOT_ANALYZED_NO_NORMS));
>>>>
>>>> In Lucene I can save geoids first as stored and in the next line as
>>>> not stored and it will do exactly that. I want to duplicate this
>>>> behavior in Solr but I can't do it having only one field in the schema
>>>> called geoids that I an manipulate at inde time whether to store or
>>>> not depending on a condition.
>>>>
>>>> Thanks again for the help, hope this explanation makes it more clear
>>>> in what I'm trying to do.
>>>>
>>>> Maria
>>>>
>>>> On Apr 28, 2012, at 11:49 AM, "Jeevanandam"
>>>> <je...@myjeeva.com<mailto:je...@myjeeva.com>> wrote:
>>>>
>>>> Maria,
>>>>
>>>> For your need please define unique pattern using dynamic field in
>>>>schema.xml
>>>>
>>>> Please have a look
>>>>http://wiki.apache.org/solr/SchemaXml#Dynamic_fields
>>>>
>>>> Hope that helps!
>>>>
>>>> -Jeevanandam
>>>>
>>>> Technology keeps you connected!
>>>>
>>>> On Apr 28, 2012, at 10:33 PM, "Vazquez, Maria (STM)"
>>>> <maria.vazq...@dexone.com<mailto:maria.vazq...@dexone.com>> wrote:
>>>>
>>>> I can call a script for the logic part but what I want to figure out
>>>> is how to save the same field sometimes as stored and indexed,
>>>> sometimes as stored not indexed, etc. From a transformer or a script I
>>>> didn't see anything where I can modify that at indexing time.
>>>> Thanks a lot,
>>>> Maria
>>>>
>>>>
>>>> On Apr 27, 2012, at 18:38, "Bill Bell"
>>>> <billnb...@gmail.com<mailto:billnb...@gmail.com>> wrote:
>>>>
>>>> Yes you can. Just use a script that is called for each row.
>>>>
>>>> Bill Bell
>>>> Sent from mobile
>>>>
>>>>
>>>> On Apr 27, 2012, at 6:38 PM, "Vazquez, Maria (STM)"
>>>> <maria.vazq...@dexone.com<mailto:maria.vazq...@dexone.com>> wrote:
>>>>
>>>> Hi,
>>>> I'm migrating a project from Lucene 2.9 to Solr 3.4.
>>>> There is a special case in the code that indexes the same field in
>>>> two different ways, which is completely legal in Lucene directly but I
>>>> don't know how to duplicate this same behavior in Solr:
>>>>
>>>> if (isFirstGeo) {
>>>> document.add(new Field("geoids", geoId, Field.Store.YES,
>>>> Field.Index.NOT_ANALYZED_NO_NORMS));
>>>> isFirstGeo = false;
>>>> } else {
>>>> if (countProducts < 100)
>>>>      document.add(new Field("geoids", geoId, Field.Store.NO,
>>>> Field.Index.NOT_ANALYZED_NO_NORMS));
>>>> else
>>>>      document.add(new Field("geoids", geoId, Field.Store.YES,
>>>> Field.Index.NO));
>>>> }
>>>>
>>>> Is there any way to do this in Solr in a Tranformer? I'm using the
>>>> DIH to index and I can't see a way to do this other than having three
>>>> fields in the schema like geoids_store_index, geoids_nostore_index,
>>>> and geoids_store_noindex.
>>>>
>>>> Thanks a lot in advance.
>>>> Maria
>>>

Reply via email to