On Oct 24, 2011, at 1:41pm, jame vaalet wrote:

> hi,
> in my use case i have list of key value pairs in each document object, if i
> index them as separate index fields then in the result doc object i will get
> two arrays corresponding to my keys and values. The problem i face here is
> that there wont be any mapping between those keys and values.
> 
> do we have any easy to index these data in solr ? thanks in advance ...

As Karsten said, providing more detail re what you're actually trying to do 
usually makes for better and more helpful/accurate answers.

But I'm guessing you only want to search on the key, not the value, right?

If so, then:

1. Create a multi-value field with a custom type, indexed, stored.
2. During indexing, add entries as <key><tab><value>
3. In the custom type, set the analyzer to strip off the <tab><value> so you 
only index the key. E.g.

    <fieldType name="key_value" class="solr.TextField" 
positionIncrementGap="100" autoGeneratePhraseQueries="true" 
omitTermFreqAndPositions="true" omitNorms="true">
      <analyzer type="index">
        <!-- Get rid of <tab><value> text at the end of each string -->
        <charFilter class="solr.PatternReplaceCharFilterFactory" 
pattern="\t\d+$" replacement="" />
        <tokenizer class="solr.StandardTokenizerFactory"/>
        <filter class="solr.LowerCaseFilterFactory"/>
        <filter class="solr.WordDelimiterFilterFactory" generateWordParts="1" 
generateNumberParts="1" catenateWords="1" catenateNumbers="1" catenateAll="0" 
splitOnCaseChange="1"/>
      </analyzer>
      <analyzer type="query">
        <tokenizer class="solr.StandardTokenizerFactory"/>
        <filter class="solr.LowerCaseFilterFactory"/>
        <filter class="solr.WordDelimiterFilterFactory" generateWordParts="1" 
generateNumberParts="1" catenateWords="0" catenateNumbers="0" catenateAll="0" 
splitOnCaseChange="1"/>
      </analyzer>
    </fieldType>

-- Ken

--------------------------
Ken Krugler
+1 530-210-6378
http://bixolabs.com
custom big data solutions & training
Hadoop, Cascading, Mahout & Solr



Reply via email to