当前位置: 首页 > 知识库问答 >
问题:

NEST弹性搜索的匹配短语前缀

曹均
2023-03-14

我不知道如何通过MatchPhrasePrefix搜索索引中的文档。我想匹配整个搜索词短语,但允许在最后一个词上加前缀。

这个LINQ建筑给了我1.0分的一切。我将如何构建这个?另一方面,是否可以查看NEST正在构建的原始查询?那将非常有帮助!

    var search = new SearchDescriptor<ObservationElasticModel>();
        search = search
            .Query(q => q.MatchPhrase(m => m.Query(term)));
     var response = _client.Search<ObservationElasticModel>(search);

共有1个答案

包永新
2023-03-14

您可以在QueryDescriptor上使用MatchPhrasePrefix方法。您可能还需要将运算符设置为和。

_client.Search<ObservationElasticModel>(s => s
    .Query(q => q
        .MatchPhrasePrefix(m => m
            .Operator(Operator.And)
            .Query(term)));

您可以通过在安装期间调用ConnectionSetting实例上的EnableTrace()和ExposeRawACK()将原始查询记录到调试控制台。

var settings = new ConnectionSettings(new Uri(searchUri));
settings.EnableTrace();
settings.ExposeRawResponse();
_client = new ElasticClient(settings);
 类似资料:
  • 我有一段说 我对代码的看法: 这是正确的做法吗??

  • 匹配查询用于实现以下情况的映射是什么 不区分大小写的搜索 数字搜索 特殊字符搜索 单字符搜索 > 我尝试使用通配符,但id不支持区分大小写 尝试使用小写规范化器匹配查询,它不支持特殊字符和单字符搜索 已尝试使用 ngram 匹配查询,但它不支持特殊字符和数字搜索。 任何人都可以帮助我的映射来支持上面提到的所有情况,无论是类型还是类型都很好

  • 我希望与字段中的字符串完全匹配,然后返回一天,提取所有此类记录。我所使用的json似乎也与简单的单词相匹配。我不确定我哪里出了问题。我需要向这个查询JSON添加吗?我目前拥有的JSON如下所示:

  • 添加注释 获取questiondetails_new/question/_search{“query”:{“bool”:{“should”:[{“match_prace”:{“tags.keyword”:“azure-data-factory”}},{“match_prach”:{“title”:“azure-data-factory”}}],“minimum_should_match”:1,“f

  • 我已经完成了名称索引。它包含椅子、椅子等数据。 当我尝试用“cha”搜索时,它不会返回任何椅子。这是返回“毛毯”,我期待的文件有椅子。 下面是我的代码: 搜索请求: 搜索响应: } 映射: 我该怎么解决这个问题? 谢谢,Sri

  • 我目前正在运行elastic search和kibana 7.0.0版,在我的项目中有一个docker compose文件 我能够连接到端口5601上的kibana(索引和搜索数据),以及端口9200上的弹性搜索。 我试图使用NEST连接到弹性这里是我的基本配置 当我通过NEST执行任何命令时,如ping、健康检查或搜索等,我检索到以下异常。这让我相信docker容器(linux容器)中存在一些与