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」..這可以應用在原始領域。