Is there a way to tell ngramfilterfactory while indexing that number shall 
never be tokenized? then the query should be able to find numbers.

Or do i have to change the ngram-min for numbers (not alpha) to 1, if that is 
possible? So to speak put the hole number as token and not all possible tokens.

Solr analysis shows onnly WDF has no underscore in its tokens, the rest have 
it. can i tell the query to search numbers differently with NGTF, WT, LCF or 
whatever?

I also tried <filter class="solr.WordDelimiterFilterFactory" 
types="at-under-alpha.txt"/>
        @ => ALPHA
        _ => ALPHA

I have gotten nearly everything to work. There are to queries where i dont get 
back what i want.

        "avaloq frage 1"        -> only returns if i set minGramSize=1 while 
indexing
        "yh_cug"                -> query parser doesn't remove "_" but the 
indexer does (WDF) so there is no match

Is there a way to also query the hole term "avaloq frage 1" without tokenizing 
it?

Fieldtype:

<fieldType name="text_de" class="solr.TextField" positionIncrementGap="100">
      <analyzer type="index"> 
                        <tokenizer class="solr.StandardTokenizerFactory"/>
                        <filter class="solr.LowerCaseFilterFactory"/>
                <filter class="solr.WordDelimiterFilterFactory" 
types="at-under-alpha.txt"/> 
                <filter class="solr.StopFilterFactory" ignoreCase="true" 
words="lang/stopwords_de.txt" format="snowball" 
enablePositionIncrements="true"/> <!-- remove common words -->
                 <filter class="solr.GermanNormalizationFilterFactory"/>
                <filter class="solr.SnowballPorterFilterFactory" 
language="German"/> <!-- remove noun/adjective inflections like plural endings 
-->             
                <filter class="solr.NGramFilterFactory" minGramSize="3" 
maxGramSize="15"/>
                <filter class="solr.WordDelimiterFilterFactory" 
generateWordParts="1" generateNumberParts="1" catenateWords="1" 
catenateNumbers="1" catenateAll="0" splitOnCaseChange="1"/>
           </analyzer>
           <analyzer type="query">
                        <tokenizer class="solr.WhiteSpaceTokenizerFactory"/>
                        <filter class="solr.LowerCaseFilterFactory"/>
                        <filter class="solr.WordDelimiterFilterFactory" 
types="at-under-alpha.txt"/> 
                        <filter class="solr.StopFilterFactory" 
ignoreCase="true" words="lang/stopwords_de.txt" format="snowball" 
enablePositionIncrements="true"/> <!-- remove common words -->
                        <filter class="solr.GermanNormalizationFilterFactory"/>
                        <filter class="solr.SnowballPorterFilterFactory" 
language="German"/>
      </analyzer>
 </fieldType>


Solrconfig:

> <queryParser name="synonym_edismax"
> class="solr.SynonymExpandingExtendedDismaxQParserPlugin">
>   <lst name="synonymAnalyzers">
> <lst name="myCoolAnalyzer">
>   <lst name="tokenizer">
> <str name="class">standard</str>
>   </lst>
>   <lst name="filter">
> <str name="class">shingle</str>
> <str name="outputUnigramsIfNoShingles">true</str>
> <str name="outputUnigrams">true</str>
> <str name="minShingleSize">2</str>
> <str name="maxShingleSize">4</str>
>   </lst>
>   <lst name="filter">
> <str name="class">synonym</str>
> <str name="tokenizerFactory">solr.KeywordTokenizerFactory</str>
> <str name="synonyms">synonyms.txt</str>
> <str name="expand">true</str>
> <str name="ignoreCase">true</str>
>   </lst>
> </lst>
>   </lst>
> </queryParser>
> 
> <requestHandler name="/select2" class="solr.SearchHandler">
>      <lst name="defaults">
>        <str name="echoParams">explicit</str>
>        <int name="rows">10</int>
>        <str name="defType">synonym_edismax</str>
>    <str name="synonyms">true</str>
>    <str name="qf">plain_text^10 editorschoice^200
> title^20 h_*^14
> tags^10 thema^15 inhaltstyp^6 breadcrumb^6 doctype^10
> contentmanager^5 links^5
> last_modified^5 url^5
>    </str>
>    <str name="bq">(expiration:[NOW TO *] OR (*:* 
> -expiration:*))^6</str>
>    <str name="bf">div(clicks,max(displays,1))^8</str> <!-- tested -->
> 
>        <str name="df">text</str>
>    <str name="fl">*,path,score</str>
>    <str name="wt">json</str>
>    <str name="q.op">AND</str>
> 
>    <!-- Highlighting defaults -->
>        <str name="hl">on</str>
>        <str name="hl.fl">plain_text,title</str>
>    <str name="hl.fragSize">200</str>
>    <str name="hl.simple.pre">&lt;b&gt;</str>
>        <str name="hl.simple.post">&lt;/b&gt;</str>
> 
> <!-- <lst name="invariants"> -->
>     <str name="facet">on</str>
> <str name="facet.mincount">1</str>
>         <str name="facet.field">{!ex=inhaltstyp_s}inhaltstyp_s</str>
> <str name="f.inhaltstyp_s.facet.sort">index</str>
> <str name="facet.field">{!ex=doctype}doctype</str>
> <str name="f.doctype.facet.sort">index</str>
> <str name="facet.field">{!ex=thema_f}thema_f</str>
> <str name="f.thema_f.facet.sort">index</str>
> <str name="facet.field">{!ex=author_s}author_s</str>
> <str name="f.author_s.facet.sort">index</str>
> <str
> name="facet.field">{!ex=sachverstaendiger_s}sachverstaendiger_s</str>
> <str name="f.sachverstaendiger_s.facet.sort">index</str>
> <str name="facet.field">{!ex=veranstaltung_s}veranstaltung_s</str>
> <str name="f.veranstaltung_s.facet.sort">index</str>
> <str name="facet.date">{!ex=last_modified}last_modified</str>
> <str name="facet.date.gap">+1MONTH</str>
> <str name="facet.date.end">NOW/MONTH+1MONTH</str>
> <str name="facet.date.start">NOW/MONTH-36MONTHS</str>
> <str name="facet.date.other">after</str>
> 
>        </lst>
> </requestHandler>

Reply via email to