如何设置轮胎弹性搜索的默认分析仪? [英] How do I set the default analyzer for elastic search with tire?

查看:96
本文介绍了如何设置轮胎弹性搜索的默认分析仪?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

最近我一直在使用ruby在rails上进行弹性搜索。我无法获取我的数据索引,所以我可以搜索具有复数和非复数关键字的项目。



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

 映射do 
索引标题,分析器:'snowball'
索引体,分析器:'snowball '
end

现在,说我的标题为'tests' / p>

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



但是,如果我没有指定如下属性进行常规搜索:

http:// localhost:9200 / myindex / mymapping / _search?q = test



它不会找到文档。



如何指定我想要默认分析器为雪球,所以我不必指定属性I想搜索?



p.s。我正在使用轮胎宝石。所以请尽可能最好地回答这个问题。

解决方案

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

  require'rubygems'
require'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 => 多元
store:title => 'Test',:body => 单数

刷新
结束


I have been experimenting with elasticsearch lately with ruby on rails. I am having trouble getting my data indexed so I can search for items with both plural, and non-plural keywords.

Tire will allow me to assign an analyzer per mapping attribute:

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

Now, say I have a keyword in the title of 'tests'

if I do a search with the attribute in the query: http://localhost:9200/myindex/mymapping/_search?q=title:test It will work.

However, if I do a general search without specifying the attribute like so:
http://localhost:9200/myindex/mymapping/_search?q=test

It will not find the document.

How do I specify that I want the default analyzer to be 'snowball' so I don't have to specify the attribute I want to search on?

p.s. I am using the Tire Gem. So please answer as best as you can taking that into account.

解决方案

It's possible to change default analyzer using index settings:

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

这篇关于如何设置轮胎弹性搜索的默认分析仪?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆