2015-03-16 2 views

ответ

0

Создание индекса с следующим отображением:

elasticClient.CreateIndex(descriptor => descriptor 
    .Index("my_index") 
    .Analysis(
     analysis => analysis.Analyzers(bases => bases.Add("minhash_analyzer", new CustomAnalyzer 
     { 
      Tokenizer = "standard", 
      Filter = new[] {"minhash"} 
     }))) 
    .AddMapping<IndexElement>(
     mappingDescriptor => 
      mappingDescriptor 
       .Properties(p => p 
        .String(s => s.Name(element => element.Message).CopyTo("minhashvalue")) 
        .Custom(new MiniHashMapping())))); 

class MiniHashMapping : BinaryMapping 
{ 
    [JsonProperty("minhash_analyzer")] 
    public string Analyzer { get { return "minhash_analyzer"; } } 

    public MiniHashMapping() 
    { 
     Type = "minhash"; 
     Name = "minhashvalue"; 
    } 
} 

class IndexElement 
{ 
    public string Message { get; set; } 
} 

Индекс образца документа:

elasticClient.Index(new IndexElement 
{ 
    Message = "Fess is Java based full text search server provided as OSS product." 
}, descriptor => descriptor.Index("my_index")); 

Расскажите elasticsearch включать поля в ответ:

var searchResponse = elasticClient.Search<IndexElement>(s => s.Query(q => q.MatchAll()).Fields("*")); 

Вы можете получить хэш-значение из searchResponse.Hits[..].Fields или searchResponse.FieldSelections.

Надеюсь, это поможет.

+0

Rob: - Спасибо. Это решило мою проблему. Я хотел бы узнать еще одну вещь. Можно ли хранить ngram для minhash_value.Если да, пожалуйста, дайте мне знать – USER007

 Смежные вопросы

  • Нет связанных вопросов^_^