当前位置: 首页 > 面试题库 >

在Elasticsearch中将字符串的默认映射更改为“未分析”

傅峰
2023-03-14
问题内容

在我的系统中,数据插入始终是通过logstash通过csv文件完成的。我从未预定义映射。但每当我输入它总是被一个字符串是analyzed,其结果就像一个条目hello I am Sinha被分为helloIamSinha。无论如何,我是否可以更改elasticsearch的默认/动态映射,以便所有字符串(无论索引如何,无论类型如何)都被视为not analyzed?还是有一种在.conf文件中设置它的方法?说我的conf档案看起来像

input {  
      file {
          path => "/home/sagnik/work/logstash-1.4.2/bin/promosms_dec15.csv"
          type => "promosms_dec15"
          start_position => "beginning"
          sincedb_path => "/dev/null"
      }
}
filter {

    csv {
        columns => ["Comm_Plan","Queue_Booking","Order_Reference","Multi_Ordertype"]
        separator => ","
    }  
    ruby {
          code => "event['Generation_Date'] = Date.parse(event['Generation_Date']);"
    }

}
output {  
    elasticsearch { 
        action => "index"
        host => "localhost"
        index => "promosms-%{+dd.MM.YYYY}"
        workers => 1
    }
}

我希望所有的字符串都是这样not analyzed,我也不介意将其作为所有将来的数据插入elasticsearch的默认设置


问题答案:

您可以查询.raw字段的版本。这是在Logstash
1.3.1
中添加的:

我们提供的logstash索引模板会为您索引的每个字段添加一个“ .raw”字段。Logstash将这些“ .raw”字段设置为“
not_analyzed”,因此不会进行任何分析或标记化-我们的原始值保持不变!

因此,如果您的字段称为foo,则会查询foo.raw返回not_analyzed(未在定界符上拆分)版本。



 类似资料:
  • 我想为我的索引更新elasticsearch中的默认映射。但是所有的文档都指出我们必须为更新映射提供类型。问题是我有很多索引类型,它们是动态创建的,就像新类型的文档出现时一样。所以最好的处理方法是默认映射类型。因为我不必为每个类型定义映射。但现在我无法更新我的索引默认映射。如果可能的话,请告诉我?

  • 问题内容: 我有来自Logstash的数据,这些数据正在以过度的方式进行分析。从本质上讲,该领域将被分解成, 和。我知道我可以更改现有数据的映射和重新索引,但是如何更改默认分析器(在ElasticSearch或LogStash中)以避免将来的数据出现此问题? 具体解决方案:在我第一次将数据发送到新集群之前,我为该类型创建了一个映射。 IRC解决方案:创建索引模板 问题答案: 如您所知,当未明确指定

  • 在尝试更新映射时,我遇到以下错误: 我正尝试在windows上运行以下命令 如何将日期字段的数据类型从字符串更改为具有特定格式的日期类型。 我尝试更改字符串数据类型的映射,将其更改为loading和,但它给出了以下错误: 但是,如果将其从更改为,则会给出一个消息。我怎样才能改变分析器。

  • 问题内容: 2010年的这个问题暗示了我正在尝试做的事情。 我正在进行单元测试,该单元测试的代码需要许多模拟对象来完成所需的工作(测试HTML + PDF渲染)。为了使测试成功,我需要生成许多模拟对象,并且每个对象最终都会将一些String数据返回到要测试的代码中。 我 想 我可以通过实现自己的类或实现此目的,但是我不确定如何实现它们,因此它们仅影响返回String的方法。 我觉得下面的代码接近我

  • 问题内容: 是否可以通过SQL语句确保列的默认值为空字符串而不是? 问题答案: 是-使用DEFAULT约束:

  • 2010年的这个问题暗示了我正在努力做什么。