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 rodio <jo...@minderest.com> on 2019/05/20 08:31:49 UTC
WordDelimiterGraphFactory with preserveOriginal issue
Hi everybody,
I'm using solr 8.0.0 and I'm stuck in a weird behaviour that I cannot solve
by myself.
This is my fieldType config:
<fieldType name="text_general" class="solr.TextField"
positionIncrementGap="100">
<analyzer type="index">
<tokenizer class="solr.WhiteSpaceTokenizerFactory"/>
<filter class="solr.StopFilterFactory" ignoreCase="true"
words="lang/stopwords_de.txt" />
<filter class="solr.WordDelimiterGraphFilterFactory"
generateWordParts="1" generateNumberParts="1" catenateWords="1"
catenateNumbers="0" catenateAll="0" splitOnCaseChange="1"
splitOnNumerics="1" preserveOriginal="1"/>
<filter class="solr.FlattenGraphFilterFactory"/>
<filter class="solr.LowerCaseFilterFactory"/>
<filter class="solr.ASCIIFoldingFilterFactory"/>
</analyzer>
<analyzer type="query">
<tokenizer class="solr.WhiteSpaceTokenizerFactory"/>
<filter class="solr.StopFilterFactory" ignoreCase="true"
words="lang/stopwords_de.txt" />
<filter class="solr.WordDelimiterGraphFilterFactory"
generateWordParts="1" generateNumberParts="1" catenateWords="1"
catenateNumbers="0" catenateAll="0" splitOnCaseChange="1"
splitOnNumerics="1" preserveOriginal="1"/>
<filter class="solr.LowerCaseFilterFactory"/>
<filter class="solr.ASCIIFoldingFilterFactory"/>
</analyzer>
</fieldType>
The problem is that I need preserveOriginal=1 in both analyzers and the
results are not right when launch a query with another field.
For example if a run this query:
idWeb: X AND name:(Leimhzolz 18x600x200 mm)
The parsed query is:
+idWeb:X +(name:leimhzolz (name:18x600x200 (+name:18 +name:x +name:600
+name:x +name:200)) name:mm)
Only docs with "18x600x200" or "mm" are scored. No score for "18" or "x" or
"600"
If a run this query:
name:(Leimhzolz 18x600x200 mm)
The parsed query is:
name:leimhzolz (name:18x600x200 (+name:18 +name:x +name:600 +name:x
+name:200)) name:mm
In this case, there are docs with "18", "x", "600" with score > 0
I have tried all kind of combination without success
I would be very glad if anyone has a solution for this matter
Many thanks in advance
Kind regards
--
Sent from: http://lucene.472066.n3.nabble.com/Solr-User-f472068.html