Hello Chris,

yes I confirm on my SOLR3.6 it works fine since several years, and each doc added with same code is updated not added.

To be more clear, I receive docs with a field name "pn" and it's the uniqueKey, and it always in uppercase

so I must define in my schema.xml

<field name="id" type="string" multiValued="false" indexed="true" required="true" stored="true"/> <field name="pn" type="text_general" multiValued="true" indexed="true" stored="false"/>
...
   <uniqueKey>id</uniqueKey>
...
  <copyField source="id" dest="pn"/>

but the application that use solr already exists so it requests with pn field not id, i cannot change that. and in each docs I receive, there is not id field, just pn field, and i cannot also change that.

so there is a problem no ? I must import a id field and request a pn field, but I have a pn field only for import...


Le 05/05/2015 01:00, Chris Hostetter a écrit :
: On SOLR3.6, I defined a string_ci field like this:
:
: <fieldType name="string_ci" class="solr.TextField"
: sortMissingLast="true" omitNorms="true">
:     <analyzer>
:       <tokenizer class="solr.KeywordTokenizerFactory"/>
:       <filter class="solr.LowerCaseFilterFactory"/>
:     </analyzer>
:     </fieldType>
:
: <field name="pn" type="string_ci" multiValued="false" indexed="true"
: required="true" stored="true"/>


I'm really suprised that field would have worked for you (reliably) as a
uniqueKey field even in Solr 3.6.

the best practice for something like what you describe has always (going
back to Solr 1.x) been to use a copyField to create a case insensitive
copy of your uniqueKey for searching.

if, for some reason, you really want case insensitve *updates* (so a doc
with id "foo" overwrites a doc with id "FOO" then the only reliable way to
make something like that work is to do the lowercassing in an
UpdateProcessor to ensure it happens *before* the docs are distributed to
the correct shard, and so the correct existing doc is overwritten (even if
you aren't using solr cloud)



-Hoss
http://www.lucidworks.com/




---
Ce courrier électronique ne contient aucun virus ou logiciel malveillant parce 
que la protection avast! Antivirus est active.
http://www.avast.com

Reply via email to