ruby-on-rails - SearchKick:如何在Elastic中使用正则表达式搜索字段?

标签 ruby-on-rails regex elasticsearch searchkick

我想根据不区分大小写的标题搜索文章。

我试图这样编码

Article.search(where: {title: /some_titles_here/i}, load: false)



但这是行不通的。

最佳答案

为了对不区分大小写的字段启用字段搜索,您需要在索引创建时间的字段上创建适当的映射,以下是有关如何执行此操作的示例:

$ curl -XPUT localhost:9200/Article/ -d '
{
  "settings":{
     "index":{
        "analysis":{
           "analyzer":{
              "analyzer_keyword":{
                 "tokenizer":"keyword",
                 "filter":"lowercase"
              }
           }
        }
     }
  },
  "mappings":{
     "Article":{
        "properties":{
           "title":{
              "analyzer":"analyzer_keyword",
              "type":"string"
           }
        }
     }
  }
}'

还有一个选项可以在搜索时指定分析器,但这取决于您使用的ES版本,并且其性能可能不如在索引创建时使用分析器。

关于ruby-on-rails - SearchKick:如何在Elastic中使用正则表达式搜索字段?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58918957/

相关文章:

elasticsearch - 如何获取Elastic中每次出现的文档数?

sql - Elasticsearch -如何使用AND查询一对多表联接

ruby-on-rails - follower_id 的 rails 作用域(has_many through source)

javascript - Rails 4 : JQuery . 就绪未触发

PHP:正则表达式 preg_replace_callback 匹配 PHP 中的所有数字

java - 带反斜杠的输入与正则表达式不匹配

javascript - 正则表达式将括号内的所有双引号替换为单引号

Jquery token 输入自动完成不适用于带有 Rails 3 的 Facebook 好友数组

javascript - 为 jasmine(-headless-webkit) 运行的文档样式规范

node.js - 检索有关ElasticSearch Node 的信息