Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/325.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# Elasticsearch.net嵌套无法对URL进行筛选_C#_.net_<img Src="//i.stack.imgur.com/RUiNP.png" Height="16" Width="18" Alt="" Class="sponsor Tag Img">elasticsearch_Nest - Fatal编程技术网 elasticsearch,nest,C#,.net,elasticsearch,Nest" /> elasticsearch,nest,C#,.net,elasticsearch,Nest" />

C# Elasticsearch.net嵌套无法对URL进行筛选

C# Elasticsearch.net嵌套无法对URL进行筛选,c#,.net,elasticsearch,nest,C#,.net,elasticsearch,Nest,我正在运行一个应用程序,基本上创建了一个URL缩短器,当我设置“shorurl”(大写和小写)时,我无法得到一个查询或过滤器来查找它。然而,对于其他更简单的字段,它工作得很好。我试着用小写字母表示,但不确定如何匹配 以下是字段定义: [ElasticProperty(Name = "shorturl", IncludeInAll = true)] public string ShortUrl { get; set; } 以下是一个例子: strin

我正在运行一个应用程序,基本上创建了一个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))
        );

也许您可以解释代码中发生了什么,以帮助其他人。这到底是如何工作的?@Mohamadshiralizadeh
字符串
字段默认情况下将使用
标准
分析器进行分析,该分析器将在将输入存储到倒排索引时生成小写标记。术语查询/过滤器不分析查询输入,因此在分析方面,查询输入和索引输入之间存在不匹配(分别为未分析和已分析)。如果要对字段执行术语查询,可能还需要将字段直接(如本例中所示)存储为
未分析
,或者将其映射为带有
未分析
子字段的
多字段
        <?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>
        [ElasticProperty(Name = "shorturl", IncludeInAll = true,                          
                    Index=FieldIndexOption.NotAnalyzed)]
        public string ShortUrl { get; set; }
   [ElasticProperty(Name = "shorturl", IncludeInAll = true,                          
                Index=FieldIndexOption.NotAnalyzed)]
    public string ShortUrl { get; set; }