首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在弹性搜索中有选择地关闭停止词

在弹性搜索中有选择地关闭停止词
EN

Stack Overflow用户
提问于 2013-12-17 16:40:30
回答 1查看 2.3K关注 0票数 0

因此,我想关闭usernametitletags字段上的停止词过滤,而不是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?,或者文档提示我自己创建分析器:/的失败。

在某些字段中有选择地禁用停止词的最佳方法是什么?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-12-17 16:57:00

我想你已经知道该怎么做了,那就是为某些领域定制你的分析器。据我所知,您没有为此创建一个有效的语法示例。这就是我们在一个项目中所使用的,我希望这个例子能为您指明正确的方向:

代码语言:javascript
复制
  {
    :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 },
        }
      }
    }
  }
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/20639766

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档