我有一些关键字列表,其中很少有
经济型酒店 迪拜酒店 扩展的酒店 .... ..
我有商店(storeName:HotelsStore),并将上面的关键字(有空格)添加到我的商店并进行solr索引。如果我们搜索 "经济型酒店"我的商店:HotelsStore没有显示结果。
但如果我添加" Cheaphotels"没有空间和索引。如果我用" Cheaphotels"然后我想要的商店(HotelsStore)显示在结果中。
注意:我们使用的是lucene 5.4和solr 5.4。
请帮我解决这个问题。
谢谢, Syamala。
答案 0 :(得分:1)
尝试使用 storeName 字段上的WordDelimiterFilter过滤器生成单词部分。
您可以根据需要自定义此过滤器。
只是示例:
这样做的一种方法是指定generateWordParts =“1” 用于索引的分析器中的catenateWords =“1”,和 用于查询的分析器中的generateWordParts =“1”。鉴于 当前的StandardTokenizer会立即删除许多内部字 分隔符,建议在a之后使用此过滤器 将它们留在原处的tokenizer(例如WhitespaceTokenizer)。
<tokenizer class="solr.WhitespaceTokenizerFactory"/>
<filter class="solr.WordDelimiterFilterFactory"
generateWordParts="1"
generateNumberParts="1"
catenateWords="1"
catenateNumbers="1"
catenateAll="0"
preserveOriginal="1"
/>
GENERATE_WORD_PARTS 设置为1
Causes parts of words to be generated:
"HotelsStore" => "Hotel" "Store"