愚者求师之过,智者从师之长。
Analyer

Analyer

Elasticsearch查询时指定分词器

Elasticsearchluman 回复了问题 • 5 人关注 • 5 个回复 • 44843 次浏览 • 2018-08-03 18:22 • 来自相关话题

elasticsearch查看Analyzer的组成

Elasticsearchyayg2008 回复了问题 • 5 人关注 • 2 个回复 • 3020 次浏览 • 2018-04-11 13:37 • 来自相关话题

条新动态, 点击查看
kennywu76

kennywu76 回答了问题 • 2018-08-01 18:34 • 5 个回复 不感兴趣

Elasticsearch查询时指定分词器

赞同来自:

有三种方式可以指定查询分析器:
1. 在mapping里指定search_analyzer,例如 PUT my_index
{
  "mappings": {
    "doc": {
      "prope... 显示全部 »
有三种方式可以指定查询分析器:
1. 在mapping里指定search_analyzer,例如 PUT my_index
{
  "mappings": {
    "doc": {
      "properties": {
        "uid": {
          "type": "keyword"
        },
        "name": {
          "type": "text",
          "analyzer": "english",
          "search_analyzer": "standard"
        }
      }
    }
  }
}  
2.使用URL Search的时候,指定analyzer参数 ,文档参考: https://www.elastic.co/guide/en/elasticsearch/reference/current/search-uri-request.html  , 对应的python代码范例:  >>> es.search(index="my_index", analyzer="standard", q='name:"mark AND johnson"') 要注意的是,这里的analyzer只能和q这个参数搭配使用。 你的代码报错,是因为用的body参数,这个参数是没有analyzer参数搭配的。

3.使用Request Body Search,文档参考: https://www.elastic.co/guide/en/elasticsearch/reference/current/search-request-body.html   ,对应的python代码范例: >>> dsl='{"query": {"match": {"name": {"query": "mark","analyzer": "standard"}}}}'
>>> es.search(index="my_index", body=dsl) 注意这个时候,analyzer是写到dsl里面的match query。

Elasticsearch查询时指定分词器

回复

Elasticsearchluman 回复了问题 • 5 人关注 • 5 个回复 • 44843 次浏览 • 2018-08-03 18:22 • 来自相关话题

elasticsearch查看Analyzer的组成

回复

Elasticsearchyayg2008 回复了问题 • 5 人关注 • 2 个回复 • 3020 次浏览 • 2018-04-11 13:37 • 来自相关话题