OK, I took another look at what you were trying to
accomplish and, I find the use-case kind of hard to
figure out, but that's my problem <G>.

But it is true that there's really no good way to _change_ the
way the field is analyzed in Solr. Of course since Solr is
built on Lucene, you could to a lot of work and bypass the
analysis chain, but that seems like more work than this is
really worth. So using multiple fields seems like the way
to go.

This is pretty unusual. You have a field that you can
> search and display the first value
> search but not display values 2-99
> display but not search values 100-*

nobody's thought about how to specify this in a schema file,
and it appears to be an unusual enough use case that
nobody has proposed anything like that that I know of.

Best
Erick

On Mon, Apr 30, 2012 at 1:11 PM, Vazquez, Maria (STM)
<maria.vazq...@dexone.com> wrote:
> 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