- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
ES 的新手,所以可能是个愚蠢的问题,但我正在尝试使用通配符进行搜索,例如:"SOMECODE*"
和 "*SOMECODE"
它工作正常,但文档中的值可能有"SOMECODE/FRED"
。
问题是 *
将匹配任何内容(不包含任何内容)。*SOMECODE
将命中 SOMECODE/FRED
。
我尝试搜索 */SOMECODE
但没有返回任何结果。
我认为字段的标记化是根本问题。
即,/
导致值为 2 个单词。
我尝试将 field 上的 map 设置为 not_analyzed
,但我根本无法搜索它。
我做错了吗?
谢谢
最佳答案
通过设置 not_analyzed
,您只允许完全匹配(例如,仅 "SOMECODE/FRED"
,包括大小写和特殊字符)。
我的猜测是您使用的是标准分析器(如果您不指定,它就是默认分析器)。如果是这种情况,Standard 会将斜线视为标记分隔符,并生成两个标记 [somecode]
和 [fred]
:
$ curl -XGET 'localhost:9200/_analyze?analyzer=standard&pretty' -d 'SOMECODE/FRED'
{
"tokens" : [ {
"token" : "somecode",
"start_offset" : 0,
"end_offset" : 8,
"type" : "<ALPHANUM>",
"position" : 1
}, {
"token" : "fred",
"start_offset" : 9,
"end_offset" : 13,
"type" : "<ALPHANUM>",
"position" : 2
} ]
}
如果您不希望出现这种情况,则需要更改为不按特殊字符拆分的分词器。但是,我会质疑这个用例。通常,您需要拆分这些类型的字符。
关于elasticsearch - analyzed v not_analyzed 还是...?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14595905/
我映射的elasticsearch类型如下, mappings": { "jardata": { "properties": { "groupID": { "index"
我有一个自定义对象,我希望将其作为索引中自己的类型存储在 ElasticSearch 中,但我不希望分析该对象中的任何字段。我应该怎么做? 我一直在使用 ElasticSearch NEST 客户端,
您好,对于某些要求,我已将所有索引设为 not_analyzed { "template": "*", "mappings": { "_default_": { "dynami
我有一个如下所示的文档,“tags”字段是一个嵌套文档,我想将标签文档的所有子字段设置为index = not_analyzed。问题是标签中的字段是动态的。任何标签都可能。那么我如何为此定义动态映射
这里也有类似的问题问Elasticsearch Map case insensitive to not_analyzed documents ,但是我的情况略有不同,因为我处理特殊字符。 大多数人建议
我在 Amazon SQS 中有很多数据(json 格式)。我基本上有一个简单的 python 脚本,它从 SQS 队列中提取数据,然后在 ES 中索引它。我的问题是,即使我在脚本中将索引指定为“no
我在对嵌套对象执行构面搜索时遇到问题。 以我有以下文档为例: tags: [ { tag: "tag0", tag_url: "http://xxxxxxx.com/
当我尝试将“not_analyzed”应用到我的 ES 映射中时,它不起作用。 我在 Laravel 中将这个包用于 ES - Elasticquent 我的映射看起来像: 'ad_title' =>
我有一个 ElasticSearch 类型,我希望为其动态设置映射。我想分析该类型的几个选择字段,但其他所有内容都应设置为“not_analyzed”。 我想出了以下片段。这会将所有 string 字
是否可以将现有字段的属性从 not_analyzed 修改为 analyzed? 如果没有,我该怎么做才能保存我所有的文件? 我无法删除映射(因为那样所有文档都将消失)并且我需要分析过的旧字段。 最佳
ES 的新手,所以可能是个愚蠢的问题,但我正在尝试使用通配符进行搜索,例如:"SOMECODE*" 和 "*SOMECODE" 它工作正常,但文档中的值可能有"SOMECODE/FRED"。 问题是
我有一个具有以下映射的类型 PUT /testindex { "mappings" : { "products" : { "properties" :
我的映射定义中有以下字段: ... "my_field": { "type": "string", "index":"not_analyzed" } ... 当我索引一个值为 my_field
如果执行以下操作,则会发生错误: 创建具有两个映射的索引 这两个映射具有相同的字段(在本例中为thing) thing字段中只有一个具有"index": "not_analyzed" 可以通过以下调用
作为我们 AWS 基础设施的一部分,我使用的是 Elasticsearch (7.4) 索引。我们使用 Terraform 在 AWS Elasticsearch 中创建域,但我们没有显式创建索引。相
我有一个索引,如以下设置和映射; { "settings":{ "index":{ "analysis":{ "analyzer":{
我面临一个问题,即如何全局设置“index”:“not_analyzed”,以便在映射json格式文件中 flex 搜索字符串值,以便在制作报告时不会被标记化。目前,我已经单独进行了检查。但是,当有新
我正在尝试查找区分大小写的匹配名称。当我尝试下面的代码时,它按预期工作,不区分大小写。 HashMap data = new HashMap(); data.put("
我在使用 java 在 Elasticsearch 中尝试批量 api 时遇到以下异常: Caused by: java.lang.IllegalArgumentException: Document
我正在尝试对结果进行分组,以便它们按类别分组。 SearchResponse response = client.prepareSearch("search") .ad
我是一名优秀的程序员,十分优秀!