0

我想使用spring-data-elasticsearch-2.1.0创建像下面一样的用户索引。注解。 我无法找到任何注释来添加“null_value”:“NULL”。这是必需的,因为我们的排序顺序失败。通过InnerField弹簧数据elasticsearch注释 “NULL”:通过spring-data-elasticsearch注解添加null_value

"user": { 
    "properties": { 
     "firstName": { 
     "type": "string" 
     }, 
     "lastName": { 
     "type": "string" 
     }, 
     "displayName": { 
     "type": "string", 
     "analyzer": "word_analyzer", 
     "fields": { 
      "raw": { 
      "type": "string", 
      "index": "not_analyzed", 
      "null_value": "NULL" 
      } 
     } 
     } 
    } 
    } 

域类

private String firstName; 
private String lastName; 
@MultiField(
     mainField = @Field(type = FieldType.String, analyzer = "word_analyzer"), 
     otherFields = { 
       @InnerField(suffix = "raw", type = FieldType.String, index = FieldIndex.not_analyzed) 
       } 
) 
private String displayName; 

如何添加“null_value”?我不想在外部创建索引映射。

回答

0

现在只能通过@Mapping注释。用映射定义创建JSON文件:

{ 
    "type": "string", 
    "index": "analyzed", 
    "analyzer": "word_analyzer", 
    "fields": { 
    "raw": { 
     "type": "string", 
     "index": "not_analyzed", 
     "null_value": "NULL" 
    } 
    } 
} 

并将其保存在资源文件夹中。在这个例子中,我将它保存在resources/elastic/document_display_name_mapping.json。与@Mapping注释

@Mapping(mappingPath = "elastic/document_display_name_mapping.json") 
private String displayName; 
0

参考https://jira.spring.io/browse/DATAES-312

这是一个悬而未决的问题(固定而不是合并)

注释字段。 “_Last”/ “_第一” 和 “unmapped_type” 在排序选项..

价:: 这可以通过添加 “缺失” 的处理 - https://www.elastic.co/guide/en/elasticsearch/reference/current/search-request-sort.html#_ignoring_unmapped_fields

这些选项( “缺失”, “unmapped_type”, “模式”)不可用。

将“null_value”:“NULL”在字符串字段中的排序顺序不正确。

“null_value”:“0”可以满足整数字段的排序顺序。

是否有可能在设置本身做一些事情来实现一个用例 usecase - 如果排序方向是ASC,那么“missing”:“_first”,如果排序方向是DESC,那么“missing”:“_last”..这可以应用在原始领域。