【问题标题】:Elastic Search Fetch Exact documentElastic Search Fetch Exact 文档
【发布时间】:2017-06-09 06:08:36
【问题描述】:

我一直在尝试根据“sAMAccountName”和“Container”两个字段从弹性搜索中获取文档,但没有运气。 enter image description here

我想要的是一个文档,其中两个属性与我的给定值完全相同。 这是我一直在做的事情 它给了我用户包含给定属性但我想要完全匹配的结果。

string container = getUserContainer(identityStore.ConnectionString);
var searchRequest = new Nest.SearchRequest();
searchRequest.Size = 10000;
searchRequest.Query = GetQuery(knownAttributes.SamAccountName, userName) && GetQuery("Container", container);
var searchResults = elasticSearch.Search<Dictionary<string,object>>(searchRequest);
                return null;

private Nest.MatchQuery GetQuery(Nest.Field field, string query)
{
            var matchQuery = new Nest.MatchQuery();
            matchQuery.Field = field;
            matchQuery.Query = query;
            matchQuery.Operator = Operator.And;
            r

返回匹配查询; }

【问题讨论】:

  • user 类型在adatum.local_1 索引中的映射是什么? sAMAccountNameContainer 是否映射为 keyword 字段类型?
  • 我也在尝试做同样的事情。看看我的帖子POST。基本上达到了我使用keyword 表示法、.Term 查询和.Value 的程度,正如 Russ Cam 所建议的那样,但我仍然有问题。我相信这可能是不可能的。也许我的 POST 示例会有所帮助,如果您还以任何其他方式找到解决方案,请告诉我。

标签: c# elasticsearch nest


【解决方案1】:

试试这个:

IQueryResponse<T> result = client.Search<T>(s => s
                               .Size(1)                                   
                               .Query(q => q.Term("field1", value1) && q.Term("field2", value2))
                               .Index("myindex")
                               .Type("mytype")
                               );
                            if (result.Documents.Count<T>() > 0)
                            {
                               //do something                                    
                            }

【讨论】:

  • 这个有问题。它给了我结果,“field1”包含 value1,但我需要“field1”正好等于 value1。
  • 不,通常术语查询返回确切的结果,请参阅:elastic.co/guide/en/elasticsearch/reference/current/… 另一种可能性是,您在关键字类型的弹性搜索中定义您的字段。然后文本不会被分析并且不会被标记化,因此您可以运行您的术语查询,以找到完全匹配。
猜你喜欢
  • 1970-01-01
  • 2019-03-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-07-13
  • 2018-08-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多