繁体   English   中英

SearchKick:如何在弹性中使用正则表达式搜索字段?

[英]SearchKick : How to search fields with regex in elastic?

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

我试着像这样编码

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 版本,并且它的性能可能低于在索引创建时使用分析器。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM