- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我允许用户用拉丁字母输入俄语单词。如果用户在拉丁字母中拼错了俄语单词,我希望 Solr 拼写检查器用西里尔字母建议正确的单词(索引中的俄语单词是西里尔字母)。但是,如果用户拼错的不是俄语单词(例如品牌名称),则应使用拉丁字母进行更正(索引中的俄语单词不是拉丁语)。
例如,tilevizor smasung
应该固定为 телевизор samsung
现在我使用以下配置:
<fieldType name="spell_ru" class="solr.TextField" positionIncrementGap="100" omitNorms="true">
<analyzer type="query">
<tokenizer class="solr.StandardTokenizerFactory"/>
<filter class="solr.LowerCaseFilterFactory"/>
<filter class="solr.ICUTransformFilterFactory" id="Any-Cyrillic; NFD; [^\p{Alnum}] Remove" />
</analyzer>
<analyzer type="index">
<tokenizer class="solr.StandardTokenizerFactory"/>
<filter class="solr.LowerCaseFilterFactory"/>
<filter class="solr.LengthFilterFactory" min="3" max="256" />
</analyzer>
</fieldType>
tilevizor
到
телевизор
有效,但
smasung
到
samsung
无效)。
最佳答案
我认为,可以在这里提供帮助的解决方案是 Beider-Morse 语音匹配 (BMPM)
Beider-Morse Phonetic Matching (BMPM) is a "soundalike" tool that lets you search using a new phonetic matching system.
solr.ICUTransformFilterFactory
与
id="Russian-Latin/BGN"
,它可以更好地将俄语符号转换为拉丁语符号。
<fieldType name="spell_ru" class="solr.TextField" positionIncrementGap="100" omitNorms="true">
<analyzer type="query">
<tokenizer class="solr.StandardTokenizerFactory"/>
<filter class="solr.LowerCaseFilterFactory"/>
<filter class="solr.ICUTransformFilterFactory" id="Russian-Latin/BGN"/>
<filter class="solr.PhoneticFilterFactory" encoder="Caverphone"/>
</analyzer>
<analyzer type="index">
<tokenizer class="solr.StandardTokenizerFactory"/>
<filter class="solr.LowerCaseFilterFactory"/>
<filter class="solr.ICUTransformFilterFactory" id="Russian-Latin/BGN"/>
<filter class="solr.PhoneticFilterFactory" encoder="Caverphone"/>
</analyzer>
</fieldType>
q=title:tilevizor
SolrDocument{title=телевизор samsung, _version_=1583123812650582016}
SolrDocument{title=televizor самсунг, _version_=1583123812667359232}
q=title:тилевизор
SolrDocument{title=телевизор samsung, _version_=1583123812650582016}
SolrDocument{title=televizor самсунг, _version_=1583123812667359232}
q=title:smasung
SolrDocument{title=телевизор samsung, _version_=1583123812650582016}
SolrDocument{title=televizor самсунг, _version_=1583123812667359232}
SolrDocument{title=гэлакси samsung, _version_=1583123812684136448}
SolrDocument{title=galaxy самсунг, _version_=1583123812684136449}
关于solr - 如何使 Solr 拼写检查器更正拉丁语和西里尔语单词?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20350714/
我想通过用语言环境拼写数字来本地化数字,最后使用了 ICU4J。我在许多地区都取得了成功,但似乎没有在格鲁吉亚、土耳其或阿拉伯语等地区完成。 ULocale locale = new ULocale(
我正在研究具有端点的 swagger API 规范: /authorizations 我也想为这个端点定义一个替代拼写(授权)。这可能吗?或者我是否需要为每个拼写定义一个单独的路由? /authori
我正在研究具有端点的 swagger API 规范: /authorizations 我也想为这个端点定义一个替代拼写(授权)。这可能吗?或者我是否需要为每个拼写定义一个单独的路由? /authori
我使用 Yahoo BOSS 的时间很短。这是一个简单的搜索 API,但拼写建议支持确实不那么强大。周围的人是否有任何关于在 BOSS 上获得更好的拼写建议的想法。 最佳答案 不幸的是,甚至在几年后,
问题如下:我正在编写一个强力解密器来破解一些 super secret 代码(这是一场竞赛,而不是犯罪),结果证明这是不可能的:树中的节点太多需要被搜查。为了克服这个问题,我认为检查中间“解决方案”以
关闭。这个问题需要更多focused .它目前不接受答案。 想改进这个问题吗? 更新问题,使其只关注一个问题 editing this post . 关闭 8 年前。 Improve this qu
我是一名优秀的程序员,十分优秀!