当前位置: 首页 > 面试题库 >

如何为轮胎elasticsearch设置默认分析仪?

酆晔
2023-03-14
问题内容

我最近一直在尝试用Elasticsearch在Rails上使用ruby。我在为数据编制索引时遇到麻烦,因此我可以搜索带有复数和非复数关键字的项目。

Tire将允许我为每个映射属性分配一个分析器:

mapping do
  indexes title, analyzer: 'snowball'
  indexes body, analyzer: 'snowball'
end

现在,假设我在“测试”标题中有一个关键字

如果我使用查询中的属性进行搜索: http:// localhost:9200 / myindex / mymapping / _search?q =
title:test

它将起作用。

但是,如果我在不指定属性的情况下进行常规搜索,例如:
http:// localhost:9200 / myindex / mymapping / _search?q =
test

它将找不到该文档。

如何指定我希望默认分析器为“ snowball”,而不必指定要搜索的属性?

ps我正在使用Tyre Gem。因此,请考虑到这一点,尽力回答。


问题答案:

可以使用索引设置更改默认分析器:

require 'rubygems'
require 'tire'

Tire.index 'articles' do
  delete
  create :settings => {
      :index => {
        :analysis => {
          :analyzer => {
            :default => {
              :type => 'snowball'
            }
          }
        }
      }
    },
    :mappings => {
      :article => {
        :properties => {
          :title    => { :type => 'string', :analyzer => 'snowball'},
          :body     => { :type => 'string', :analyzer => 'snowball'}
        }
      }
    }

  store :title => 'Tests', :body => "Plural"
  store :title => 'Test', :body => "Singular"

  refresh
end


 类似资料:
  • 问题内容: 尝试使用WTForms设置SelectField的默认值时,我像这样将值传递给“默认”参数。 我也尝试了以下方法。 都不将默认选定字段设置为“ Def”。这适用于其他类型的字段,例如TextField。如何设置SelectField的默认值? 问题答案: 你发布的第一种方法是正确的,并且对我有用。唯一无法解释的原因可能是你正在运行旧版本的WTForms,它在1.0.1上对我有效

  • 问题内容: 我正在使用ElasticSearch 1.5.2,希望具有以下设置: 我应该在哪里添加它们?我的意思是在创建索引之前还是之后? 通过在线搜索,我发现了一些类似的方法 但是我有2个问题, 我收到编译错误:ImmutableSettings.builder类型的方法loadFromSource不适用于参数XContentBuilder 另外,我不知道如何将我的设置转换为这种格式。在哪里可以

  • 问题内容: 我在Elasticsearch上遇到问题,我不希望对索引项进行分析。但是elasticsearch有一些默认设置,可以在空间上标记它。因此,我的方面查询未返回我想要的结果。 我读到索引类型的属性应该工作。但是问题是我事先不知道我的文档结构。我会在不知道表结构的情况下将随机MySQL数据库索引到elasticsearch。 我如何设置elasticsearch,使其默认情况下会一直使用,

  • 问题内容: 如何为MySQL Datetime列设置默认值? 在SQL Server中为。MySQL的等效功能是什么?如果这是一个因素,我正在使用MySQL5.x。 问题答案: 重要编辑: 自 MySQL 5.6.5起 ,现在可以使用DATETIME字段实现此目的,请看下面的另一篇文章 … 以前的版本无法在DATETIME做到这一点… 但是您可以使用TIMESTAMP来做到这一点: 注意:如果您定

  • 问题内容: 我尝试配置ElasticSearch: 这是我执行“ http://mydomain.com:9200/test/_analyze?analyzer=autocomplete&text=rih ” 时的错误 有什么问题 ?谢谢 问题答案: 该错误显示“无法找到分析器[自动完成]”。在Elasticsearch中,默认情况下您可以使用多个分析器。尽管您可以创建一个自定义分析器,但我不知道

  • Apache Kafka文档说明: 内部Kafka Streams使用者max.poll.interval.ms默认值已从300000更改为integer.max_value