gpt4 book ai didi

elasticsearch - NEST ElasticSearch Guid 问题

转载 作者:行者123 更新时间:2023-12-02 22:32:07 25 4
gpt4 key购买 nike

我在过滤字段 Guid 上的查询时遇到了一些问题。这是我的代码示例。我错过了什么?

public class myObject 
{
public Guid Id {get;set}
public String Field1 { get; set; }
public String Field2 { get; set; }
public String Fieldn { get; set; }
public ReadingRightsEnum ReadingRights { get; set; }
public Guid UserId { get; set; }
}

// Index fct example
public void IndexMyObject(obj)
{
var result = await myClient.IndexAsync(obj, i => i
.Index("myIndexName")
.Type("myObject")
.Id(obj.Id.ToString())
.Refresh());
}

// Index fct example
public void SearchOnlyInMyUserObject(string userQuery, Guid userId)
{
var searchResult = await myClient.SearchAsync<myObject>(body =>
body.Query(q =>
q.QueryString(qs => qs.MinimumShouldMatchPercentage(100).Query(userQuery))
&& q.Term(i => i.UserId, userId))
.Fields(f => f.Id)
.Size(200));
}

// Index fct example with filter
public void SearchOnlyInMyUserObject(string userQuery, Guid userId)
{
var filters = new List<FilterContainer>
{
new FilterDescriptor<myObject>().Bool(b => b.Must(m => m.Term(i => i.UserId, userId)));
};
var searchResult = await myClient.SearchAsync<myObject>(body =>
body
.Filter(f => f.And(filters.ToArray()))
.Query(q =>
q.QueryString(qs => qs.MinimumShouldMatchPercentage(100).Query(userQuery)))
.Fields(f => f.Id)
.Size(200));
}

如果我对其他参数进行过滤,那么这两个函数都可以正常工作,但当我对 Guid 进行过滤时,则不会返回任何内容。当我索引我的对象时,是否应该将我的 Guid 转换为字符串?

如果我这样做 http://xxxxxxx:9200/_search?q=userId:e4aec7b4-c400-4660-a09e-a0ce064f612e它工作正常。

有什么想法吗?

提前致谢

在此处编辑 06/12 myindex 示例:

myIndexName":{
"mappings":{
"myObject":{
"properties":{
"readingrights":{
"type":"integer"
},
"id":{
"type":"string"
},
"field1":{
"type":"string"
},
"field2":{
"type":"string"
},
"userId":{
"type":"string"
}
}
}
}
}

最佳答案

GUID 字段在 Elastic 中很棘手。如果你使用弹性客户端的分析功能,它会告诉你它是如何分解一个 GUID 的。 AnalyzeRequest obj = new AnalyzeRequest(_index, item); _client.Analyze(obj);

创建实体时,需要将guid定义为不被解析。[字符串(索引 = FieldIndexOption.NotAnalyzed)] 公共(public) Guid TextAssetId

关于elasticsearch - NEST ElasticSearch Guid 问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34006962/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com