因此,我想关闭username、title和tags字段上的停止词过滤,而不是description字段。
可以想象,我不想筛选出一个名为the best的结果,但是如果the位于description字段中,我确实希望阻止它影响分数(如果您想要一个示例,请在GitHub上搜索the )。
现在@Javanna says ( Is there a way to "escape" ElasticSearch stop words? ):
在您的情况下,我将禁用该特定字段的秒词,而不是修改秒表,但如果您愿意,也可以使用后者。
未能提供一个示例,所以我四处搜索并尝试了common查询:http://www.elasticsearch.org/blog/stop-stopping-stop-words-a-look-at-common-terms-query/,这对我也不起作用。
因此,我搜索了具体的停止过滤停止词--尽管我最近的方法是在索引范围内停止它:直接攻击分析器的Can I customize Elastic Search to use my own Stop Word list?,或者文档提示我自己创建分析器:/的失败。
在某些字段中有选择地禁用停止词的最佳方法是什么?
发布于 2013-12-17 16:57:00
我想你已经知道该怎么做了,那就是为某些领域定制你的分析器。据我所知,您没有为此创建一个有效的语法示例。这就是我们在一个项目中所使用的,我希望这个例子能为您指明正确的方向:
{
:settings => {
:analysis => {
:analyzer => {
:analyzer_umlauts => {
:tokenizer => "standard",
:char_filter => ["filter_umlaut_mapping"],
:filter => ["standard", "lowercase"],
}
},
:char_filter => {
:filter_umlaut_mapping => {
:type => 'mapping',
:mappings_path => es_config_file("char_mapping")
}
}
}
},
:mappings => {
:company => {
:properties => {
[...]
:postal_city => { :type => "string", :analyzer => "analyzer_umlauts", :omit_norms => true, :omit_term_freq_and_positions => true, :include_in_all => false },
}
}
}
}https://stackoverflow.com/questions/20639766
复制相似问题