indexed term: bdeut_NullableValue
query term 1 : bdeut_nullablevalue (lowercase)
query term 2 : nullablevalue (lowercase)

current field type definition in order:
Whitespace Tokenizer
Word Delimiter Filter
Lowercase filter

current analysis output: [INDEX]schema_field
WT
text
bdeut_NullableValue


WDF
text
bdeut_NullableValuebdeut
Nullable
Value
bdeutNullableValue


LCF
text
bdeut_nullablevaluebdeutnullablevaluebdeutnullablevalue

current Query Analysis output:schema_field

WT
text
bdeut_nullablevalue

WDF
text
bdeut_nullablevalue
bdeut
nullablevalue
bdeutnullablevalue

LCF
text
bdeut_nullablevalue
bdeut
nullablevalue
bdeutnullablevalue



Problem:

1. Query : bdeut_nullablevalue gets no hit
we cannot find lowercase terms unless we remove camel casing/ or move LCF
before WDF, either way we lose the value of the camel case filter in WDF.
debug phrase query strings:
<str name="parsedquery_toString">schema_field:"(bdeut_nullablevalue bdeut)
(nullablevalue bdeutnullablevalue)"</str>
<str name="parsedquery_toString">schema_field:"(bdeut_nullablevalue bdeut)
nullable (value bdeutnullablevalue)"</str>

2. Query : "nullablevalue" would also not work.


The solution I propose is as follows, let me know your suggestions.

suggested fix : Add option to word delimiter factor
"recursive=[FALSE/True]",
this would run the WDF including preserve original on the subset of tokens
note: on multiple passes over the WDF word positions of the terms do not
change

To test the recursive step i just modified the analyser chain to have WDF
twice

WT
text
NullableValue



WDF
text
NullableValue
Nullable
Value
NullableValue



WDF
text
NullableValue
Nullable
Value
NullableValue
Nullable
Value
NullableValue
Nullable
Value
NullableValue


LCF
text
nullablevalue
nullable
value
nullablevalue
nullable
value
nullablevalue
nullable
value
nullablevalue



-- 
Anirudha P. Jadhav

Reply via email to