Vazquez,
Sorry I don't have an answer but I'd love to know what you need this for :-)

I think the logic is going to have to bleed into your search app. In
short copy field and your app knows which to search in.

lee c



On 30 April 2012 20:41, Erick Erickson <erickerick...@gmail.com> wrote:
> 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