繁体   English   中英

使用“-”查询在 ElasticSearch NEST 7.x 中返回不正确的结果

[英]Query with '-' returns incorrect results in ElasticSearch NEST 7.x

这是我用来搜索的查询:

 var response = await client.SearchAsync<MenuForElasticSearch>(searchDescriptor => searchDescriptor
                .Query(queryContainerDescriptor => queryContainerDescriptor
                    .Bool(queryDescriptor => queryDescriptor
                        .Should(queryStringQuery => queryStringQuery.Match(match => match.Field(fld => fld.DisplayName).Query(query)),
                        queryStringQuery => queryStringQuery.Wildcard(wildcard => wildcard.Field(flds => flds.DisplayName).Value($"*{query}*")),
                        queryStringQuery => queryStringQuery.Fuzzy(fuzzy => fuzzy.Field(flds => flds.DisplayName).Value(query)))
                        )));

共有三个文件,displayName = NPW-711、NPW-677 和 NPW-777。 当我搜索 NPW-711 时,它会返回所有三个文档。 添加DefaultOperator(Elasticsearch.Net.DefaultOperator.And)帮助吗? 如果是,它适合哪里?

使用 AND 运算符匹配查询将为您提供所需的内容

var results = await client.SearchAsync<Document>(s => s
    .Query(q => q
        .Match(m => m
            .Field("name")
            .Query(query)
            .Operator(Operator.And))));

输出:

Results for query "NPW-777": NPW-777
Results for query "NPW": NPW-711,NPW-677,NPW-777
Results for query "677": NPW-677

希望有帮助。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM