You are viewing a plain text version of this content. The canonical link for it is here.
Posted to solr-user@lucene.apache.org by no...@frameweld.com on 2010/06/22 22:42:08 UTC
Help with highlighting
Hi, I need help with highlighting fields that would match a query. So far, my results only highlight if the field is from all_text, and I would like it to use other fields. It simply isn't the case if I just turn highlighting on. Any ideas why it only applies to all_text? Here is my schema:
<?xml version="1.0" ?>
<schema name="Search" version="1.1">
<types>
<!-- Basic Solr Bundled Data Types -->
<!-- Rudimentary types -->
<fieldType name="string" class="solr.StrField" sortMissingLast="true" omitNorms="true" />
<fieldType name="boolean" class="solr.BoolField" sortMissingLast="true" omitNorms="true" />
<!-- Non-sortable numeric types -->
<fieldType name="integer" class="solr.IntField" omitNorms="true"/>
<fieldType name="long" class="solr.LongField" omitNorms="true"/>
<fieldType name="float" class="solr.FloatField" omitNorms="true"/>
<fieldType name="double" class="solr.DoubleField" omitNorms="true"/>
<!-- Sortable numeric types -->
<fieldType name="sint" class="solr.SortableIntField" sortMissingLast="true" omitNorms="true"/>
<fieldType name="slong" class="solr.SortableLongField" sortMissingLast="true" omitNorms="true"/>
<fieldType name="sfloat" class="solr.SortableFloatField" sortMissingLast="true" omitNorms="true"/>
<fieldType name="sdouble" class="solr.SortableDoubleField" sortMissingLast="true" omitNorms="true"/>
<!-- Date/Time types -->
<fieldType name="date" class="solr.DateField" sortMissingLast="true" omitNorms="true"/>
<!-- Pseudo types -->
<fieldType name="random" class="solr.RandomSortField" indexed="true" />
<!-- Analyzing types -->
<fieldType name="text_ws" class="solr.TextField" positionIncrementGap="100">
<analyzer>
<tokenizer class="solr.WhitespaceTokenizerFactory"/>
</analyzer>
</fieldType>
<fieldType name="text" class="solr.TextField" positionIncrementGap="100">
<analyzer type="index">
<tokenizer class="solr.WhitespaceTokenizerFactory"/>
<!-- <filter class="solr.SynonymFilterFactory" synonyms="index_synonyms.txt" ignoreCase="true" expand="false"/> -->
<filter class="solr.WordDelimiterFilterFactory" generateWordParts="1" generateNumberParts="1" catenateWords="1" catenateNumbers="1" catenateAll="0" splitOnCaseChange="1"/>
<filter class="solr.LowerCaseFilterFactory"/>
<filter class="solr.EnglishPorterFilterFactory" protected="protwords.txt"/>
<filter class="solr.RemoveDuplicatesTokenFilterFactory"/>
</analyzer>
<analyzer type="query">
<tokenizer class="solr.WhitespaceTokenizerFactory"/>
<filter class="solr.SynonymFilterFactory" synonyms="synonyms.txt" ignoreCase="true" expand="true"/>
<filter class="solr.WordDelimiterFilterFactory" generateWordParts="1" generateNumberParts="1" catenateWords="0" catenateNumbers="0" catenateAll="0" splitOnCaseChange="1"/>
<filter class="solr.LowerCaseFilterFactory"/>
<filter class="solr.EnglishPorterFilterFactory" protected="protwords.txt"/>
<filter class="solr.RemoveDuplicatesTokenFilterFactory"/>
</analyzer>
</fieldType>
<fieldType name="textTight" class="solr.TextField" positionIncrementGap="100" >
<analyzer>
<tokenizer class="solr.WhitespaceTokenizerFactory"/>
<filter class="solr.SynonymFilterFactory" synonyms="synonyms.txt" ignoreCase="true" expand="false"/>
<filter class="solr.StopFilterFactory" ignoreCase="true" words="stopwords.txt"/>
<filter class="solr.WordDelimiterFilterFactory" generateWordParts="0" generateNumberParts="0" catenateWords="1" catenateNumbers="1" catenateAll="0"/>
<filter class="solr.LowerCaseFilterFactory"/>
<filter class="solr.EnglishPorterFilterFactory" protected="protwords.txt"/>
<filter class="solr.RemoveDuplicatesTokenFilterFactory"/>
</analyzer>
</fieldType>
<fieldType name="textSpell" class="solr.TextField" positionIncrementGap="100" >
<analyzer>
<tokenizer class="solr.StandardTokenizerFactory"/>
<filter class="solr.LowerCaseFilterFactory"/>
<filter class="solr.RemoveDuplicatesTokenFilterFactory" />
<filter class="solr.ShingleFilterFactory" maxShingleSize="2" outputUnigrams="false" />
</analyzer>
</fieldType>
<fieldType name="alphaOnlySort" class="solr.TextField" sortMissingLast="true" omitNorms="true">
<analyzer>
<tokenizer class="solr.KeywordTokenizerFactory"/>
<filter class="solr.LowerCaseFilterFactory" />
<filter class="solr.TrimFilterFactory" />
<filter class="solr.PatternReplaceFilterFactory"
pattern="([^a-z])" replacement="" replace="all"
/>
</analyzer>
</fieldType>
<fieldtype name="ignored" stored="false" indexed="false" class="solr.StrField" />
</types>
<fields>
<!-- Entry details, will be used later as a unique field -->
<!-- searchable things -->
<field name="presentation_id" type="sint" indexed="true" stored="true" />
<field name="asset_id" type="sint" indexed="true" stored="true" />
<field name="type" type="string" indexed="true" stored="true" />
<field name="text" type="string" indexed="true" stored="true" multiValued="true" />
<field name="time_code" type="string" indexed="true" stored="true" />
<field name="unique_key" type="string" indexed="true" stored="true" />
<!-- everything -->
<dynamicField name="*" type="text" indexed="true" stored="true" />
<field name="all_text" type="text" indexed="true" stored="true" allowDups="true" multiValued="true" />
<copyField source="*" dest="all_text" />
<field name="text_dup" type="textSpell" indexed="true" stored="true" allowDups="true" />
<copyField source="text" dest="text_dup" />
</fields>
<uniqueKey>unique_key</uniqueKey>
<defaultSearchField>all_text</defaultSearchField>
<solrQueryParser defaultOperator="OR" />
</schema>
Re: Help with highlighting
Posted by no...@frameweld.com.
Thanks, that's exactly the problem. I've tried different types, even a fieldType that had no tokenizers and that didn't work. However, text just gives me my results as wanted.
-----Original Message-----
From: "dan sutton" <da...@gmail.com>
Sent: Wednesday, June 23, 2010 12:06pm
To: solr-user@lucene.apache.org
Subject: Re: Help with highlighting
It looks to me like a tokenisation issue, all_text content and the query
text will match, but the string fieldtype fields 'might not' and therefore
will not be highlighted.
On Wed, Jun 23, 2010 at 4:40 PM, <no...@frameweld.com> wrote:
> Here's my request:
> q=ASA+AND+minisite_id%3A36&version=1.3&json.nl
> =map&rows=10&start=0&wt=json&hl=true&hl.fl=%2A&hl.simple.pre=%3Cspan+class%3D%22hl%22%3E&hl.simple.post=%3C%2Fspan%3E&hl.fragsize=0&hl.mergeContiguous=false
>
> And here's what happened:
> It didn't return results, even when I applied an asterisk for which fields
> highlight. I tried other fields and that didn't work either, however
> all_text is the only one that works. Any other ideas why the other fields
> won't highlight? Thanks.
>
> -----Original Message-----
> From: "Erik Hatcher" <er...@gmail.com>
> Sent: Tuesday, June 22, 2010 9:49pm
> To: solr-user@lucene.apache.org
> Subject: Re: Help with highlighting
>
> You need to share with us the Solr request you made, any any custom
> request handler settings that might map to. Chances are you just need
> to twiddle with the highlighter parameters (see wiki for docs) to get
> it to do what you want.
>
> Erik
>
> On Jun 22, 2010, at 4:42 PM, noel@frameweld.com wrote:
>
> > Hi, I need help with highlighting fields that would match a query.
> > So far, my results only highlight if the field is from all_text, and
> > I would like it to use other fields. It simply isn't the case if I
> > just turn highlighting on. Any ideas why it only applies to
> > all_text? Here is my schema:
> >
> > <?xml version="1.0" ?>
> >
> > <schema name="Search" version="1.1">
> > <types>
> > <!-- Basic Solr Bundled Data Types -->
> >
> > <!-- Rudimentary types -->
> > <fieldType name="string" class="solr.StrField"
> > sortMissingLast="true" omitNorms="true" />
> > <fieldType name="boolean" class="solr.BoolField"
> > sortMissingLast="true" omitNorms="true" />
> >
> > <!-- Non-sortable numeric types -->
> > <fieldType name="integer" class="solr.IntField"
> omitNorms="true"/>
> >
> > <fieldType name="long" class="solr.LongField"
> omitNorms="true"/>
> > <fieldType name="float" class="solr.FloatField"
> omitNorms="true"/>
> > <fieldType name="double" class="solr.DoubleField"
> omitNorms="true"/>
> >
> > <!-- Sortable numeric types -->
> > <fieldType name="sint" class="solr.SortableIntField"
> > sortMissingLast="true" omitNorms="true"/>
> > <fieldType name="slong" class="solr.SortableLongField"
> > sortMissingLast="true" omitNorms="true"/>
> > <fieldType name="sfloat" class="solr.SortableFloatField"
> > sortMissingLast="true" omitNorms="true"/>
> > <fieldType name="sdouble" class="solr.SortableDoubleField"
> > sortMissingLast="true" omitNorms="true"/>
> >
> > <!-- Date/Time types -->
> >
> > <fieldType name="date" class="solr.DateField"
> > sortMissingLast="true" omitNorms="true"/>
> >
> > <!-- Pseudo types -->
> > <fieldType name="random" class="solr.RandomSortField"
> > indexed="true" />
> >
> > <!-- Analyzing types -->
> > <fieldType name="text_ws" class="solr.TextField"
> > positionIncrementGap="100">
> > <analyzer>
> > <tokenizer
> class="solr.WhitespaceTokenizerFactory"/>
> > </analyzer>
> > </fieldType>
> >
> >
> > <fieldType name="text" class="solr.TextField"
> > positionIncrementGap="100">
> > <analyzer type="index">
> > <tokenizer
> class="solr.WhitespaceTokenizerFactory"/>
> > <!-- <filter class="solr.SynonymFilterFactory"
> > synonyms="index_synonyms.txt" ignoreCase="true" expand="false"/> -->
> > <filter
> class="solr.WordDelimiterFilterFactory"
> > generateWordParts="1" generateNumberParts="1" catenateWords="1"
> > catenateNumbers="1" catenateAll="0" splitOnCaseChange="1"/>
> > <filter
> class="solr.LowerCaseFilterFactory"/>
> > <filter
> class="solr.EnglishPorterFilterFactory"
> > protected="protwords.txt"/>
> > <filter
> class="solr.RemoveDuplicatesTokenFilterFactory"/>
> > </analyzer>
> >
> > <analyzer type="query">
> > <tokenizer
> class="solr.WhitespaceTokenizerFactory"/>
> > <filter class="solr.SynonymFilterFactory"
> > synonyms="synonyms.txt" ignoreCase="true" expand="true"/>
> > <filter
> class="solr.WordDelimiterFilterFactory"
> > generateWordParts="1" generateNumberParts="1" catenateWords="0"
> > catenateNumbers="0" catenateAll="0" splitOnCaseChange="1"/>
> > <filter
> class="solr.LowerCaseFilterFactory"/>
> > <filter
> class="solr.EnglishPorterFilterFactory"
> > protected="protwords.txt"/>
> > <filter
> class="solr.RemoveDuplicatesTokenFilterFactory"/>
> > </analyzer>
> > </fieldType>
> >
> >
> > <fieldType name="textTight" class="solr.TextField"
> > positionIncrementGap="100" >
> > <analyzer>
> > <tokenizer
> class="solr.WhitespaceTokenizerFactory"/>
> > <filter class="solr.SynonymFilterFactory"
> > synonyms="synonyms.txt" ignoreCase="true" expand="false"/>
> > <filter class="solr.StopFilterFactory"
> ignoreCase="true"
> > words="stopwords.txt"/>
> > <filter
> class="solr.WordDelimiterFilterFactory"
> > generateWordParts="0" generateNumberParts="0" catenateWords="1"
> > catenateNumbers="1" catenateAll="0"/>
> > <filter
> class="solr.LowerCaseFilterFactory"/>
> > <filter
> class="solr.EnglishPorterFilterFactory"
> > protected="protwords.txt"/>
> > <filter
> class="solr.RemoveDuplicatesTokenFilterFactory"/>
> >
> > </analyzer>
> > </fieldType>
> >
> > <fieldType name="textSpell" class="solr.TextField"
> > positionIncrementGap="100" >
> > <analyzer>
> > <tokenizer
> class="solr.StandardTokenizerFactory"/>
> > <filter
> class="solr.LowerCaseFilterFactory"/>
> > <filter
> class="solr.RemoveDuplicatesTokenFilterFactory" />
> > <filter class="solr.ShingleFilterFactory"
> maxShingleSize="2"
> > outputUnigrams="false" />
> > </analyzer>
> >
> > </fieldType>
> >
> > <fieldType name="alphaOnlySort" class="solr.TextField"
> > sortMissingLast="true" omitNorms="true">
> > <analyzer>
> > <tokenizer
> class="solr.KeywordTokenizerFactory"/>
> > <filter class="solr.LowerCaseFilterFactory"
> />
> > <filter class="solr.TrimFilterFactory" />
> > <filter
> class="solr.PatternReplaceFilterFactory"
> > pattern="([^a-z])" replacement=""
> replace="all"
> > />
> > </analyzer>
> > </fieldType>
> >
> > <fieldtype name="ignored" stored="false" indexed="false"
> > class="solr.StrField" />
> >
> > </types>
> >
> > <fields>
> > <!-- Entry details, will be used later as a unique field -->
> > <!-- searchable things -->
> > <field name="presentation_id" type="sint" indexed="true"
> > stored="true" />
> > <field name="asset_id" type="sint" indexed="true"
> stored="true" />
> > <field name="type" type="string" indexed="true"
> stored="true" />
> > <field name="text" type="string" indexed="true"
> stored="true"
> > multiValued="true" />
> >
> > <field name="time_code" type="string" indexed="true"
> > stored="true" />
> > <field name="unique_key" type="string" indexed="true"
> > stored="true" />
> > <!-- everything -->
> >
> > <dynamicField name="*" type="text" indexed="true"
> stored="true" />
> >
> > <field name="all_text" type="text" indexed="true"
> stored="true"
> > allowDups="true" multiValued="true" />
> > <copyField source="*" dest="all_text" />
> > <field name="text_dup" type="textSpell" indexed="true"
> > stored="true" allowDups="true" />
> > <copyField source="text" dest="text_dup" />
> >
> > </fields>
> > <uniqueKey>unique_key</uniqueKey>
> > <defaultSearchField>all_text</defaultSearchField>
> >
> > <solrQueryParser defaultOperator="OR" />
> >
> > </schema>
> >
> >
>
>
>
>
Re: Help with highlighting
Posted by dan sutton <da...@gmail.com>.
It looks to me like a tokenisation issue, all_text content and the query
text will match, but the string fieldtype fields 'might not' and therefore
will not be highlighted.
On Wed, Jun 23, 2010 at 4:40 PM, <no...@frameweld.com> wrote:
> Here's my request:
> q=ASA+AND+minisite_id%3A36&version=1.3&json.nl
> =map&rows=10&start=0&wt=json&hl=true&hl.fl=%2A&hl.simple.pre=%3Cspan+class%3D%22hl%22%3E&hl.simple.post=%3C%2Fspan%3E&hl.fragsize=0&hl.mergeContiguous=false
>
> And here's what happened:
> It didn't return results, even when I applied an asterisk for which fields
> highlight. I tried other fields and that didn't work either, however
> all_text is the only one that works. Any other ideas why the other fields
> won't highlight? Thanks.
>
> -----Original Message-----
> From: "Erik Hatcher" <er...@gmail.com>
> Sent: Tuesday, June 22, 2010 9:49pm
> To: solr-user@lucene.apache.org
> Subject: Re: Help with highlighting
>
> You need to share with us the Solr request you made, any any custom
> request handler settings that might map to. Chances are you just need
> to twiddle with the highlighter parameters (see wiki for docs) to get
> it to do what you want.
>
> Erik
>
> On Jun 22, 2010, at 4:42 PM, noel@frameweld.com wrote:
>
> > Hi, I need help with highlighting fields that would match a query.
> > So far, my results only highlight if the field is from all_text, and
> > I would like it to use other fields. It simply isn't the case if I
> > just turn highlighting on. Any ideas why it only applies to
> > all_text? Here is my schema:
> >
> > <?xml version="1.0" ?>
> >
> > <schema name="Search" version="1.1">
> > <types>
> > <!-- Basic Solr Bundled Data Types -->
> >
> > <!-- Rudimentary types -->
> > <fieldType name="string" class="solr.StrField"
> > sortMissingLast="true" omitNorms="true" />
> > <fieldType name="boolean" class="solr.BoolField"
> > sortMissingLast="true" omitNorms="true" />
> >
> > <!-- Non-sortable numeric types -->
> > <fieldType name="integer" class="solr.IntField"
> omitNorms="true"/>
> >
> > <fieldType name="long" class="solr.LongField"
> omitNorms="true"/>
> > <fieldType name="float" class="solr.FloatField"
> omitNorms="true"/>
> > <fieldType name="double" class="solr.DoubleField"
> omitNorms="true"/>
> >
> > <!-- Sortable numeric types -->
> > <fieldType name="sint" class="solr.SortableIntField"
> > sortMissingLast="true" omitNorms="true"/>
> > <fieldType name="slong" class="solr.SortableLongField"
> > sortMissingLast="true" omitNorms="true"/>
> > <fieldType name="sfloat" class="solr.SortableFloatField"
> > sortMissingLast="true" omitNorms="true"/>
> > <fieldType name="sdouble" class="solr.SortableDoubleField"
> > sortMissingLast="true" omitNorms="true"/>
> >
> > <!-- Date/Time types -->
> >
> > <fieldType name="date" class="solr.DateField"
> > sortMissingLast="true" omitNorms="true"/>
> >
> > <!-- Pseudo types -->
> > <fieldType name="random" class="solr.RandomSortField"
> > indexed="true" />
> >
> > <!-- Analyzing types -->
> > <fieldType name="text_ws" class="solr.TextField"
> > positionIncrementGap="100">
> > <analyzer>
> > <tokenizer
> class="solr.WhitespaceTokenizerFactory"/>
> > </analyzer>
> > </fieldType>
> >
> >
> > <fieldType name="text" class="solr.TextField"
> > positionIncrementGap="100">
> > <analyzer type="index">
> > <tokenizer
> class="solr.WhitespaceTokenizerFactory"/>
> > <!-- <filter class="solr.SynonymFilterFactory"
> > synonyms="index_synonyms.txt" ignoreCase="true" expand="false"/> -->
> > <filter
> class="solr.WordDelimiterFilterFactory"
> > generateWordParts="1" generateNumberParts="1" catenateWords="1"
> > catenateNumbers="1" catenateAll="0" splitOnCaseChange="1"/>
> > <filter
> class="solr.LowerCaseFilterFactory"/>
> > <filter
> class="solr.EnglishPorterFilterFactory"
> > protected="protwords.txt"/>
> > <filter
> class="solr.RemoveDuplicatesTokenFilterFactory"/>
> > </analyzer>
> >
> > <analyzer type="query">
> > <tokenizer
> class="solr.WhitespaceTokenizerFactory"/>
> > <filter class="solr.SynonymFilterFactory"
> > synonyms="synonyms.txt" ignoreCase="true" expand="true"/>
> > <filter
> class="solr.WordDelimiterFilterFactory"
> > generateWordParts="1" generateNumberParts="1" catenateWords="0"
> > catenateNumbers="0" catenateAll="0" splitOnCaseChange="1"/>
> > <filter
> class="solr.LowerCaseFilterFactory"/>
> > <filter
> class="solr.EnglishPorterFilterFactory"
> > protected="protwords.txt"/>
> > <filter
> class="solr.RemoveDuplicatesTokenFilterFactory"/>
> > </analyzer>
> > </fieldType>
> >
> >
> > <fieldType name="textTight" class="solr.TextField"
> > positionIncrementGap="100" >
> > <analyzer>
> > <tokenizer
> class="solr.WhitespaceTokenizerFactory"/>
> > <filter class="solr.SynonymFilterFactory"
> > synonyms="synonyms.txt" ignoreCase="true" expand="false"/>
> > <filter class="solr.StopFilterFactory"
> ignoreCase="true"
> > words="stopwords.txt"/>
> > <filter
> class="solr.WordDelimiterFilterFactory"
> > generateWordParts="0" generateNumberParts="0" catenateWords="1"
> > catenateNumbers="1" catenateAll="0"/>
> > <filter
> class="solr.LowerCaseFilterFactory"/>
> > <filter
> class="solr.EnglishPorterFilterFactory"
> > protected="protwords.txt"/>
> > <filter
> class="solr.RemoveDuplicatesTokenFilterFactory"/>
> >
> > </analyzer>
> > </fieldType>
> >
> > <fieldType name="textSpell" class="solr.TextField"
> > positionIncrementGap="100" >
> > <analyzer>
> > <tokenizer
> class="solr.StandardTokenizerFactory"/>
> > <filter
> class="solr.LowerCaseFilterFactory"/>
> > <filter
> class="solr.RemoveDuplicatesTokenFilterFactory" />
> > <filter class="solr.ShingleFilterFactory"
> maxShingleSize="2"
> > outputUnigrams="false" />
> > </analyzer>
> >
> > </fieldType>
> >
> > <fieldType name="alphaOnlySort" class="solr.TextField"
> > sortMissingLast="true" omitNorms="true">
> > <analyzer>
> > <tokenizer
> class="solr.KeywordTokenizerFactory"/>
> > <filter class="solr.LowerCaseFilterFactory"
> />
> > <filter class="solr.TrimFilterFactory" />
> > <filter
> class="solr.PatternReplaceFilterFactory"
> > pattern="([^a-z])" replacement=""
> replace="all"
> > />
> > </analyzer>
> > </fieldType>
> >
> > <fieldtype name="ignored" stored="false" indexed="false"
> > class="solr.StrField" />
> >
> > </types>
> >
> > <fields>
> > <!-- Entry details, will be used later as a unique field -->
> > <!-- searchable things -->
> > <field name="presentation_id" type="sint" indexed="true"
> > stored="true" />
> > <field name="asset_id" type="sint" indexed="true"
> stored="true" />
> > <field name="type" type="string" indexed="true"
> stored="true" />
> > <field name="text" type="string" indexed="true"
> stored="true"
> > multiValued="true" />
> >
> > <field name="time_code" type="string" indexed="true"
> > stored="true" />
> > <field name="unique_key" type="string" indexed="true"
> > stored="true" />
> > <!-- everything -->
> >
> > <dynamicField name="*" type="text" indexed="true"
> stored="true" />
> >
> > <field name="all_text" type="text" indexed="true"
> stored="true"
> > allowDups="true" multiValued="true" />
> > <copyField source="*" dest="all_text" />
> > <field name="text_dup" type="textSpell" indexed="true"
> > stored="true" allowDups="true" />
> > <copyField source="text" dest="text_dup" />
> >
> > </fields>
> > <uniqueKey>unique_key</uniqueKey>
> > <defaultSearchField>all_text</defaultSearchField>
> >
> > <solrQueryParser defaultOperator="OR" />
> >
> > </schema>
> >
> >
>
>
>
>
Re: Help with highlighting
Posted by no...@frameweld.com.
Here's my request:
q=ASA+AND+minisite_id%3A36&version=1.3&json.nl=map&rows=10&start=0&wt=json&hl=true&hl.fl=%2A&hl.simple.pre=%3Cspan+class%3D%22hl%22%3E&hl.simple.post=%3C%2Fspan%3E&hl.fragsize=0&hl.mergeContiguous=false
And here's what happened:
It didn't return results, even when I applied an asterisk for which fields highlight. I tried other fields and that didn't work either, however all_text is the only one that works. Any other ideas why the other fields won't highlight? Thanks.
-----Original Message-----
From: "Erik Hatcher" <er...@gmail.com>
Sent: Tuesday, June 22, 2010 9:49pm
To: solr-user@lucene.apache.org
Subject: Re: Help with highlighting
You need to share with us the Solr request you made, any any custom
request handler settings that might map to. Chances are you just need
to twiddle with the highlighter parameters (see wiki for docs) to get
it to do what you want.
Erik
On Jun 22, 2010, at 4:42 PM, noel@frameweld.com wrote:
> Hi, I need help with highlighting fields that would match a query.
> So far, my results only highlight if the field is from all_text, and
> I would like it to use other fields. It simply isn't the case if I
> just turn highlighting on. Any ideas why it only applies to
> all_text? Here is my schema:
>
> <?xml version="1.0" ?>
>
> <schema name="Search" version="1.1">
> <types>
> <!-- Basic Solr Bundled Data Types -->
>
> <!-- Rudimentary types -->
> <fieldType name="string" class="solr.StrField"
> sortMissingLast="true" omitNorms="true" />
> <fieldType name="boolean" class="solr.BoolField"
> sortMissingLast="true" omitNorms="true" />
>
> <!-- Non-sortable numeric types -->
> <fieldType name="integer" class="solr.IntField" omitNorms="true"/>
>
> <fieldType name="long" class="solr.LongField" omitNorms="true"/>
> <fieldType name="float" class="solr.FloatField" omitNorms="true"/>
> <fieldType name="double" class="solr.DoubleField" omitNorms="true"/>
>
> <!-- Sortable numeric types -->
> <fieldType name="sint" class="solr.SortableIntField"
> sortMissingLast="true" omitNorms="true"/>
> <fieldType name="slong" class="solr.SortableLongField"
> sortMissingLast="true" omitNorms="true"/>
> <fieldType name="sfloat" class="solr.SortableFloatField"
> sortMissingLast="true" omitNorms="true"/>
> <fieldType name="sdouble" class="solr.SortableDoubleField"
> sortMissingLast="true" omitNorms="true"/>
>
> <!-- Date/Time types -->
>
> <fieldType name="date" class="solr.DateField"
> sortMissingLast="true" omitNorms="true"/>
>
> <!-- Pseudo types -->
> <fieldType name="random" class="solr.RandomSortField"
> indexed="true" />
>
> <!-- Analyzing types -->
> <fieldType name="text_ws" class="solr.TextField"
> positionIncrementGap="100">
> <analyzer>
> <tokenizer class="solr.WhitespaceTokenizerFactory"/>
> </analyzer>
> </fieldType>
>
>
> <fieldType name="text" class="solr.TextField"
> positionIncrementGap="100">
> <analyzer type="index">
> <tokenizer class="solr.WhitespaceTokenizerFactory"/>
> <!-- <filter class="solr.SynonymFilterFactory"
> synonyms="index_synonyms.txt" ignoreCase="true" expand="false"/> -->
> <filter class="solr.WordDelimiterFilterFactory"
> generateWordParts="1" generateNumberParts="1" catenateWords="1"
> catenateNumbers="1" catenateAll="0" splitOnCaseChange="1"/>
> <filter class="solr.LowerCaseFilterFactory"/>
> <filter class="solr.EnglishPorterFilterFactory"
> protected="protwords.txt"/>
> <filter class="solr.RemoveDuplicatesTokenFilterFactory"/>
> </analyzer>
>
> <analyzer type="query">
> <tokenizer class="solr.WhitespaceTokenizerFactory"/>
> <filter class="solr.SynonymFilterFactory"
> synonyms="synonyms.txt" ignoreCase="true" expand="true"/>
> <filter class="solr.WordDelimiterFilterFactory"
> generateWordParts="1" generateNumberParts="1" catenateWords="0"
> catenateNumbers="0" catenateAll="0" splitOnCaseChange="1"/>
> <filter class="solr.LowerCaseFilterFactory"/>
> <filter class="solr.EnglishPorterFilterFactory"
> protected="protwords.txt"/>
> <filter class="solr.RemoveDuplicatesTokenFilterFactory"/>
> </analyzer>
> </fieldType>
>
>
> <fieldType name="textTight" class="solr.TextField"
> positionIncrementGap="100" >
> <analyzer>
> <tokenizer class="solr.WhitespaceTokenizerFactory"/>
> <filter class="solr.SynonymFilterFactory"
> synonyms="synonyms.txt" ignoreCase="true" expand="false"/>
> <filter class="solr.StopFilterFactory" ignoreCase="true"
> words="stopwords.txt"/>
> <filter class="solr.WordDelimiterFilterFactory"
> generateWordParts="0" generateNumberParts="0" catenateWords="1"
> catenateNumbers="1" catenateAll="0"/>
> <filter class="solr.LowerCaseFilterFactory"/>
> <filter class="solr.EnglishPorterFilterFactory"
> protected="protwords.txt"/>
> <filter class="solr.RemoveDuplicatesTokenFilterFactory"/>
>
> </analyzer>
> </fieldType>
>
> <fieldType name="textSpell" class="solr.TextField"
> positionIncrementGap="100" >
> <analyzer>
> <tokenizer class="solr.StandardTokenizerFactory"/>
> <filter class="solr.LowerCaseFilterFactory"/>
> <filter class="solr.RemoveDuplicatesTokenFilterFactory" />
> <filter class="solr.ShingleFilterFactory" maxShingleSize="2"
> outputUnigrams="false" />
> </analyzer>
>
> </fieldType>
>
> <fieldType name="alphaOnlySort" class="solr.TextField"
> sortMissingLast="true" omitNorms="true">
> <analyzer>
> <tokenizer class="solr.KeywordTokenizerFactory"/>
> <filter class="solr.LowerCaseFilterFactory" />
> <filter class="solr.TrimFilterFactory" />
> <filter class="solr.PatternReplaceFilterFactory"
> pattern="([^a-z])" replacement="" replace="all"
> />
> </analyzer>
> </fieldType>
>
> <fieldtype name="ignored" stored="false" indexed="false"
> class="solr.StrField" />
>
> </types>
>
> <fields>
> <!-- Entry details, will be used later as a unique field -->
> <!-- searchable things -->
> <field name="presentation_id" type="sint" indexed="true"
> stored="true" />
> <field name="asset_id" type="sint" indexed="true" stored="true" />
> <field name="type" type="string" indexed="true" stored="true" />
> <field name="text" type="string" indexed="true" stored="true"
> multiValued="true" />
>
> <field name="time_code" type="string" indexed="true"
> stored="true" />
> <field name="unique_key" type="string" indexed="true"
> stored="true" />
> <!-- everything -->
>
> <dynamicField name="*" type="text" indexed="true" stored="true" />
>
> <field name="all_text" type="text" indexed="true" stored="true"
> allowDups="true" multiValued="true" />
> <copyField source="*" dest="all_text" />
> <field name="text_dup" type="textSpell" indexed="true"
> stored="true" allowDups="true" />
> <copyField source="text" dest="text_dup" />
>
> </fields>
> <uniqueKey>unique_key</uniqueKey>
> <defaultSearchField>all_text</defaultSearchField>
>
> <solrQueryParser defaultOperator="OR" />
>
> </schema>
>
>
Re: Help with highlighting
Posted by Erik Hatcher <er...@gmail.com>.
You need to share with us the Solr request you made, any any custom
request handler settings that might map to. Chances are you just need
to twiddle with the highlighter parameters (see wiki for docs) to get
it to do what you want.
Erik
On Jun 22, 2010, at 4:42 PM, noel@frameweld.com wrote:
> Hi, I need help with highlighting fields that would match a query.
> So far, my results only highlight if the field is from all_text, and
> I would like it to use other fields. It simply isn't the case if I
> just turn highlighting on. Any ideas why it only applies to
> all_text? Here is my schema:
>
> <?xml version="1.0" ?>
>
> <schema name="Search" version="1.1">
> <types>
> <!-- Basic Solr Bundled Data Types -->
>
> <!-- Rudimentary types -->
> <fieldType name="string" class="solr.StrField"
> sortMissingLast="true" omitNorms="true" />
> <fieldType name="boolean" class="solr.BoolField"
> sortMissingLast="true" omitNorms="true" />
>
> <!-- Non-sortable numeric types -->
> <fieldType name="integer" class="solr.IntField" omitNorms="true"/>
>
> <fieldType name="long" class="solr.LongField" omitNorms="true"/>
> <fieldType name="float" class="solr.FloatField" omitNorms="true"/>
> <fieldType name="double" class="solr.DoubleField" omitNorms="true"/>
>
> <!-- Sortable numeric types -->
> <fieldType name="sint" class="solr.SortableIntField"
> sortMissingLast="true" omitNorms="true"/>
> <fieldType name="slong" class="solr.SortableLongField"
> sortMissingLast="true" omitNorms="true"/>
> <fieldType name="sfloat" class="solr.SortableFloatField"
> sortMissingLast="true" omitNorms="true"/>
> <fieldType name="sdouble" class="solr.SortableDoubleField"
> sortMissingLast="true" omitNorms="true"/>
>
> <!-- Date/Time types -->
>
> <fieldType name="date" class="solr.DateField"
> sortMissingLast="true" omitNorms="true"/>
>
> <!-- Pseudo types -->
> <fieldType name="random" class="solr.RandomSortField"
> indexed="true" />
>
> <!-- Analyzing types -->
> <fieldType name="text_ws" class="solr.TextField"
> positionIncrementGap="100">
> <analyzer>
> <tokenizer class="solr.WhitespaceTokenizerFactory"/>
> </analyzer>
> </fieldType>
>
>
> <fieldType name="text" class="solr.TextField"
> positionIncrementGap="100">
> <analyzer type="index">
> <tokenizer class="solr.WhitespaceTokenizerFactory"/>
> <!-- <filter class="solr.SynonymFilterFactory"
> synonyms="index_synonyms.txt" ignoreCase="true" expand="false"/> -->
> <filter class="solr.WordDelimiterFilterFactory"
> generateWordParts="1" generateNumberParts="1" catenateWords="1"
> catenateNumbers="1" catenateAll="0" splitOnCaseChange="1"/>
> <filter class="solr.LowerCaseFilterFactory"/>
> <filter class="solr.EnglishPorterFilterFactory"
> protected="protwords.txt"/>
> <filter class="solr.RemoveDuplicatesTokenFilterFactory"/>
> </analyzer>
>
> <analyzer type="query">
> <tokenizer class="solr.WhitespaceTokenizerFactory"/>
> <filter class="solr.SynonymFilterFactory"
> synonyms="synonyms.txt" ignoreCase="true" expand="true"/>
> <filter class="solr.WordDelimiterFilterFactory"
> generateWordParts="1" generateNumberParts="1" catenateWords="0"
> catenateNumbers="0" catenateAll="0" splitOnCaseChange="1"/>
> <filter class="solr.LowerCaseFilterFactory"/>
> <filter class="solr.EnglishPorterFilterFactory"
> protected="protwords.txt"/>
> <filter class="solr.RemoveDuplicatesTokenFilterFactory"/>
> </analyzer>
> </fieldType>
>
>
> <fieldType name="textTight" class="solr.TextField"
> positionIncrementGap="100" >
> <analyzer>
> <tokenizer class="solr.WhitespaceTokenizerFactory"/>
> <filter class="solr.SynonymFilterFactory"
> synonyms="synonyms.txt" ignoreCase="true" expand="false"/>
> <filter class="solr.StopFilterFactory" ignoreCase="true"
> words="stopwords.txt"/>
> <filter class="solr.WordDelimiterFilterFactory"
> generateWordParts="0" generateNumberParts="0" catenateWords="1"
> catenateNumbers="1" catenateAll="0"/>
> <filter class="solr.LowerCaseFilterFactory"/>
> <filter class="solr.EnglishPorterFilterFactory"
> protected="protwords.txt"/>
> <filter class="solr.RemoveDuplicatesTokenFilterFactory"/>
>
> </analyzer>
> </fieldType>
>
> <fieldType name="textSpell" class="solr.TextField"
> positionIncrementGap="100" >
> <analyzer>
> <tokenizer class="solr.StandardTokenizerFactory"/>
> <filter class="solr.LowerCaseFilterFactory"/>
> <filter class="solr.RemoveDuplicatesTokenFilterFactory" />
> <filter class="solr.ShingleFilterFactory" maxShingleSize="2"
> outputUnigrams="false" />
> </analyzer>
>
> </fieldType>
>
> <fieldType name="alphaOnlySort" class="solr.TextField"
> sortMissingLast="true" omitNorms="true">
> <analyzer>
> <tokenizer class="solr.KeywordTokenizerFactory"/>
> <filter class="solr.LowerCaseFilterFactory" />
> <filter class="solr.TrimFilterFactory" />
> <filter class="solr.PatternReplaceFilterFactory"
> pattern="([^a-z])" replacement="" replace="all"
> />
> </analyzer>
> </fieldType>
>
> <fieldtype name="ignored" stored="false" indexed="false"
> class="solr.StrField" />
>
> </types>
>
> <fields>
> <!-- Entry details, will be used later as a unique field -->
> <!-- searchable things -->
> <field name="presentation_id" type="sint" indexed="true"
> stored="true" />
> <field name="asset_id" type="sint" indexed="true" stored="true" />
> <field name="type" type="string" indexed="true" stored="true" />
> <field name="text" type="string" indexed="true" stored="true"
> multiValued="true" />
>
> <field name="time_code" type="string" indexed="true"
> stored="true" />
> <field name="unique_key" type="string" indexed="true"
> stored="true" />
> <!-- everything -->
>
> <dynamicField name="*" type="text" indexed="true" stored="true" />
>
> <field name="all_text" type="text" indexed="true" stored="true"
> allowDups="true" multiValued="true" />
> <copyField source="*" dest="all_text" />
> <field name="text_dup" type="textSpell" indexed="true"
> stored="true" allowDups="true" />
> <copyField source="text" dest="text_dup" />
>
> </fields>
> <uniqueKey>unique_key</uniqueKey>
> <defaultSearchField>all_text</defaultSearchField>
>
> <solrQueryParser defaultOperator="OR" />
>
> </schema>
>
>