相关文章推荐
爱运动的青椒  ·  android 网络差时 ...·  4 月前    · 
发呆的生姜  ·  SqlConnection Class ...·  6 月前    · 
严肃的柚子  ·  XL VBA ...·  1 年前    · 
另一个标签的信息要存储
solr入门之參考淘宝搜索提示功能优化拼音加汉字搜索功能_字段
第二使用首字母来匹配 这里看不出来 淘宝的东西太多了,首字母直接有了相应的全程
solr入门之參考淘宝搜索提示功能优化拼音加汉字搜索功能_首字母_02

第三使用切断字母的匹配 看的出来 走的还是全然匹配的路径
solr入门之參考淘宝搜索提示功能优化拼音加汉字搜索功能_analyzer_03


第四使用汉字匹配的方法 :  这个没得说的 这是主功能了
solr入门之參考淘宝搜索提示功能优化拼音加汉字搜索功能_solr_04

第五使用 拼音加汉字的方式: 可以匹配到 使用所有的拼音时 这里能看出来是使用了转换的方法了
先将汉字转为拼音 在去匹配
solr入门之參考淘宝搜索提示功能优化拼音加汉字搜索功能_solr_05
第六 这里使用部分  这个没啥问题 转成拼音后  shouta*
solr入门之參考淘宝搜索提示功能优化拼音加汉字搜索功能_首字母_06


第七 这里应该是先转成拼音 为 stao 看以下一张图搜索结果是吻合的,可是结果太少了,
这里淘宝因该使用了另外的搜索机制了.假设这样的方法搜索到的数量不够,那么就使用查询模式
即 再放一个分词的字段用来查询, 我想是分成一个一个的模式 也就是搜索 s 套了
这里不须要考虑顺序了 词中含有这两个就能够了 就是以下的结果了
solr入门之參考淘宝搜索提示功能优化拼音加汉字搜索功能_搜索_07
solr入门之參考淘宝搜索提示功能优化拼音加汉字搜索功能_搜索_08

这里和上面说的是一个道理 从这里 大家应按能猜出来 搜索shtao是没有结果的,能够验证下 假设有兴趣
solr入门之參考淘宝搜索提示功能优化拼音加汉字搜索功能_analyzer_09
这里看到没有提示结果,就是没有了
依照推測出来的两种搜索方式
对于拼音加汉字问题 应该是使用了双重查询 ,保证汉字是正确匹配的(应该使用的是当个分词字段)
然后再进行汉字转为拼音后的过滤,


学到一点解决拼音加汉字搜索建议的解决方法
新加入一个字段使用全然分词模式即 分成一个 一个 用来做汉字匹配过滤查询
然后再用汉字转拼音查询  当数量不够时再使用一次检索查询 含有keyword就可以 不要求位置在首位

以下是自己的搜索建议改造拼音加汉字的改写
1.加入一个汉字单个分词的字段
schema.xml中配置
<fieldtype name="ng1_1" class="solr.TextField" positionIncrementGap="100">
<analyzer>
<tokenizer class="solr.NGramTokenizerFactory" minGramSize="1" maxGramSize="1"/>
<filter class="solr.LowerCaseFilterFactory"/>
</analyzer>
</fieldtype>
<!-- 单个分词 保证汉字正确性-->
<field name="word_n1" type="ng1_1" indexed="true" stored="false"/>
<copyField source="word" dest="word_n1"/>


2.代码中加入过滤部分
//这里加入过滤--要包括的汉字--使用filter添加查询速度
if(StringFilterUtils.filterAll(q)!=null && StringFilterUtils.filterAll(q).trim().length()>0){
query.set(CommonParams.FQ, BaseSuggestIndex.Fd.word_n1.name()+":"+StringFilterUtils.filterAll(q).trim());
}

对照搜索条件

solr入门之參考淘宝搜索提示功能优化拼音加汉字搜索功能_搜索_11
solr入门之參考淘宝搜索提示功能优化拼音加汉字搜索功能_首字母_12
solr入门之參考淘宝搜索提示功能优化拼音加汉字搜索功能_搜索_13
未优化前
solr入门之參考淘宝搜索提示功能优化拼音加汉字搜索功能_首字母_14 solr入门之參考淘宝搜索提示功能优化拼音加汉字搜索功能_首字母_15 solr入门之參考淘宝搜索提示功能优化拼音加汉字搜索功能_搜索_16

优化后

solr入门之參考淘宝搜索提示功能优化拼音加汉字搜索功能_首字母_17 solr入门之參考淘宝搜索提示功能优化拼音加汉字搜索功能_字段_18 solr入门之參考淘宝搜索提示功能优化拼音加汉字搜索功能_首字母_19

能够发现汉字输入不对,就不能出来提示了 以下是一些输入正确的出来的结果
solr入门之參考淘宝搜索提示功能优化拼音加汉字搜索功能_首字母_20 solr入门之參考淘宝搜索提示功能优化拼音加汉字搜索功能_字段_21 solr入门之參考淘宝搜索提示功能优化拼音加汉字搜索功能_analyzer_22