弹性搜索获取精确文档

时间:2017-06-09 06:08:37

标签: c# elasticsearch nest

我一直在尝试根据两个字段" sAMAccountName"从弹性搜索中获取文档。和#34;容器"但没有运气。 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

eturn matchQuery;         }

1 个答案:

答案 0 :(得分:0)

试试这个:

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                                    
                            }