【问题标题】:MatchPhrasePrefix on NEST Elastic SearchNEST 弹性搜索上的 MatchPhrasePrefix
【发布时间】:2015-07-28 04:46:52
【问题描述】:

我不知道如何通过 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);

【问题讨论】:

    标签: elasticsearch nest


    【解决方案1】:

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

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

    您可以在设置期间通过在 ConnectionSettings 实例上调用 EnableTrace()ExposeRawResponse() 将原始查询记录到调试控制台。

    var settings = new ConnectionSettings(new Uri(searchUri));
    settings.EnableTrace();
    settings.ExposeRawResponse();
    _client = new ElasticClient(settings);
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2020-09-04
      • 1970-01-01
      • 1970-01-01
      • 2021-05-18
      • 1970-01-01
      • 2016-11-22
      相关资源
      最近更新 更多