c# - 嵌套中的 rawquery 弹性搜索查询 - 未填充字段
问题描述
这工作正常:
var rawQuery = @"
{
""query_string"": {
""query"": ""hello world""
,""default_operator"": ""AND""
}
}
";
var searchResponse = client.Search<Doc>(new SearchRequest
{
Query = new RawQuery(rawQuery), Size = 1000
});
不幸的是,除了 Id 之外,没有填充 POCO Doc 的任何字段。任何想法为什么会这样?
PS:
根据要求提供更多(简化)详细信息
public class Doc
{
public string Id { get; set; }
public string FileName { get; set; }
public string FileExtension { get; set; }
public string Content { get; set; }
public Attachment Attachment { get; set; }
}
public static void CreateIndex(ElasticClient client, string indexName)
{
var createIndexResponse = client.Indices.Create(indexName, c => c
.Settings(s => s
.Analysis(a => a
.Analyzers(ad => ad
.Custom("windows_path_hierarchy_analyzer", ca => ca
.Tokenizer("windows_path_hierarchy_tokenizer")
)
)
.Tokenizers(t => t
.PathHierarchy("windows_path_hierarchy_tokenizer", ph => ph
.Delimiter('\\')
)
)
)
)
.Map<Doc>(mp => mp
.AutoMap()
.Properties(ps => ps
.Text(s => s
.Name(n => n.Id)
.Analyzer("windows_path_hierarchy_analyzer")
)
.Object<Attachment>(a => a
.Name(n => n.Attachment)
.AutoMap()
)
)
)
);
var putPipelineResponse = client.Ingest.PutPipeline("attachments", p => p
.Description("Document attachment pipeline")
.Processors(pr => pr
.Attachment<Doc>(a => a
.Field(f => f.Content)
.TargetField(f => f.Attachment)
)
.Remove<Doc>(r => r
.Field(ff => ff
.Field(f => f.Content)
)
)
)
);
}
PP:
所以我用:
http:/SomeWhere:9200/amazingindex/_search?pretty=true
并且这些字段被称为,例如,fileName fileExtension。所以我使用这些名称/大写创建了一个 POCO。除了 Id 和 Nest Attachment 之外,这些字段仍然没有填充。我想我必须离开 NEST 才能发送原始查询并填充 POCO。
解决方案
推荐阅读
- c# - C# Datetimepicker 停止验证的方法
- python - 在 Python 3 中调整图像大小失败
- firebase - 是否可以在规则中使用来自不同数据库的值(Firebase 实时数据库)
- tensorflow - 在将 keras 导入 shell 时出现此错误,而我安装了 2.4.1 版和 keras 2.4.3 的 tensorflow
- sql - IBM Db2:在“SELECT test_score”之后发现了一个意外的标记“as”(SQL0104N)
- javascript - 循环遍历 h3 元素
- r - 在闪亮的应用程序中两次调用绘图/加载函数
- c++ - 如何使用 Il2CppInspector 在 C++ 中将 std::string 转换为 System.String?
- python - 使用 python selenium 在 iframe 中执行脚本标签
- javascript - 如何将多个变量置于if条件中?