Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/user-interface/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/search/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
<img src="//i.stack.imgur.com/RUiNP.png" height="16" width="18" alt="" class="sponsor tag img">elasticsearch ElasticSearch使用空格搜索连字符文本,而不是在查询上破折号_<img Src="//i.stack.imgur.com/RUiNP.png" Height="16" Width="18" Alt="" Class="sponsor Tag Img">elasticsearch_Search_Whitespace_Hyphen - Fatal编程技术网 elasticsearch ElasticSearch使用空格搜索连字符文本,而不是在查询上破折号,elasticsearch,search,whitespace,hyphen,elasticsearch,Search,Whitespace,Hyphen" /> elasticsearch ElasticSearch使用空格搜索连字符文本,而不是在查询上破折号,elasticsearch,search,whitespace,hyphen,elasticsearch,Search,Whitespace,Hyphen" />

elasticsearch ElasticSearch使用空格搜索连字符文本,而不是在查询上破折号

elasticsearch ElasticSearch使用空格搜索连字符文本,而不是在查询上破折号,elasticsearch,search,whitespace,hyphen,elasticsearch,Search,Whitespace,Hyphen,我已经用firstName=Jean-Marc索引了data person,我希望能够使用不同查询组合找到此人,例如,对于firstName Jean-Marc,应该可以使用以下搜索: Jean-Marc和带空格或破折号的Jean-Marc 以下是映射: "firstName": { "type": "keyword", "normalizer": "keyword_normalizer", "fields": { "analysed": {

我已经用firstName=Jean-Marc索引了data person,我希望能够使用不同查询组合找到此人,例如,对于firstName Jean-Marc,应该可以使用以下搜索: Jean-Marc和带空格或破折号的Jean-Marc

以下是映射:

  "firstName": {
    "type": "keyword",
    "normalizer": "keyword_normalizer",
    "fields": {
      "analysed": {
        "type": "text",
        "analyzer": "hyphen_analyzer",
        "search_analyzer": "standard",
        "fielddata": true
      }
    }
  }
以及设置:

"char_filter": {
    "allowOnlyChar": {
        "pattern": "[^A-Za-z]",
        "type": "pattern_replace",
        "replacement": " "
    }
}

"analyzer": {
    "hyphen_analyzers": {
        "filter": "lowercase",
        "char_filter": [
            "allowOnlyChar"
        ],
        "type": "custom",
        "tokenizer": "standard"
    }
}
当我保持破折号时,我得到了那个人,但没有空格查询的结果

我使用弹性6.2.4定义分析仪:

"char_filter": {
    "allowOnlyChar": {
        "pattern": "[^A-Za-z]",
        "type": "pattern_replace",
        "replacement": " "
    }
}

"analyzer": {
    "yourAnalyzer": {
        "filter": "lowercase",
        "char_filter": [
            "allowOnlyChar"
        ],
        "type": "custom",
        "tokenizer": "standard"
    }
}
当然,用这个分析器为你的文档编制索引。 分析器:你的分析器


链接到文档:

感谢您的帮助,当我使用关键字类型时,您的建议似乎不起作用,我用全局配置更新了问题。哦,我的错,在映射中没有看到关键字。不管你是否也可以将分析器设置为关键字,非常简单:谢谢你的回答。将我的标记器更改为关键字效果很好