【问题标题】:Elasticsearch.net NEST cannot filter on URLElasticsearch.net NEST 无法过滤 URL
【发布时间】:2015-03-11 21:27:29
【问题描述】:

我正在运行一个应用程序,主要是创建一个 URL 缩短器,当我设置大小写的“shorurl”时,我无法通过查询或过滤器找到它。然而,对于其他更简单的领域,它工作得很好。我尝试在它上面做小写,不确定如何匹配。

这是字段定义:

       [ElasticProperty(Name = "shorturl", IncludeInAll = true)]
        public string ShortUrl { get; set; }

这是一个例子:

        string url = "http://test.com/JjdWtPoV";

        FilterContainer filter = new FilterContainer();
        filter = Filter<Data>.Term("shorturl", url);

        var results = this.Client.Search<Data>(s => s
            .Filter(filter)
        );

        QueryContainer q = new QueryContainer();
        q = Query<Data>.Term("shorturl", url);

        results = this.Client.Search<Data>(s => s
            .Query(q)
        );

        results = this.Client.Search<Data>(s => s
            .Query(f => f.Term(p=> p.ShortUrl, url))
        );

我应该注意以下是我正在使用的版本:

        <?xml version="1.0" encoding="utf-8"?>
        <packages>
          <package id="Elasticsearch.Net" version="1.3.1" targetFramework="net45" />
          <package id="NEST" version="1.3.1" targetFramework="net45" />
          <package id="Newtonsoft.Json" version="6.0.1" targetFramework="net45" />
        </packages>

找到答案 需要确保一个字符串设置了“NOT ANALYZED”

        [ElasticProperty(Name = "shorturl", IncludeInAll = true,                          
                    Index=FieldIndexOption.NotAnalyzed)]
        public string ShortUrl { get; set; }

【问题讨论】:

    标签: c# .net elasticsearch nest


    【解决方案1】:
       [ElasticProperty(Name = "shorturl", IncludeInAll = true,                          
                    Index=FieldIndexOption.NotAnalyzed)]
        public string ShortUrl { get; set; }
    

    【讨论】:

    • 也许您可以解释一下您的代码中发生了什么,以帮助其他人。这究竟是如何工作的?
    • @Mohamadshiralizadeh string 字段默认情况下将使用standard 分析器进行分析,其中包括在将输入存储在倒排索引中时从输入生成的小写标记。术语查询/过滤器不分析查询输入,因此在分析方面查询输入和索引输入之间存在不匹配(分别为未分析与已分析)。如果您想对字段进行术语查询,可能还希望将字段直接存储为not_analyzed(如本例所示),或者将其映射为multi_fieldnot_analyzed 子-字段
    猜你喜欢
    • 2016-10-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多