elasticsearch - Elasticsearch中的模式分词器在空白和特殊字符上进行拆分

标签 elasticsearch

我在 Elasticsearch 中创建了一个分析器,如下所示。

   {
    "analyzer": {
        "pattern_analyzers": {
            "type": "custom",
            "pattern": ",",
            "tokenizer": "pattern"
        }
    }
}

在字符串字段中添加了相同的分析器,我在其中以逗号分隔的形式存储值。
该字段的值将如下所示:
"skills":"software-engineer,hardware,android developer"

在这里我没有得到确切的结果,因为想要得到的就像它只在遇到逗号时才应该分开。我目前得到的结果是,字符串在空格和特殊字符上拆分。

如何修改分析器以使其仅在遇到逗号时才拆分字符串。

编辑:

在这种情况下"software,Engineer (Core, Non-IT),hardware"它不应该像"software","Engineer (Core"," Non-IT)","hardware"一样拆分

代替"software","Engineer (Core, Non-IT)","hardware"

最佳答案

我认为这不是制作自定义分析仪的正确方法
尝试以这种方式进行。

放置my_index

{
  "settings": {
    "analysis": {
      "analyzer": {
        "pattern_analyzers": {
          "tokenizer": "my_tokenizer"
        }
      },
      "tokenizer": {
        "my_tokenizer": {
          "type": "pattern",
          "pattern": ","
        }
      }
    }
  }
}

关于elasticsearch - Elasticsearch中的模式分词器在空白和特殊字符上进行拆分,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48582931/

相关文章:

python - 导出时使用大JSON会导致内存问题

elasticsearch - hapi fhir Elasticsearch 如何配置

c# - ElasticSearch:如何在集合中搜索

elasticsearch - ElasticSearch服务器的aggs查询中应将数据范围过滤器放在哪里?

elasticsearch - Logstash 似乎正在摄取时间戳不正确的数据?

search - 如何让 Elasticsearch fuzzy_like_this 将 like_text 标记视为 AND 而不是 OR?

elasticsearch - 合并第一个滤波器的输出作为第二个滤波器的输入

search - 在哪种情况下,我们需要在Lucene文档中将Field.Store和Field.Index都设置为 `NO`?

elasticsearch - 聚合后的Elasticsearch排序日期

elasticsearch - Elasticsearch中的安全性设置,xpack显示不一致的行为