Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/fsharp/3.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/drupal/3.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# NEST ElasticSearch.NET转义特殊字符_C#_<img Src="//i.stack.imgur.com/RUiNP.png" Height="16" Width="18" Alt="" Class="sponsor Tag Img">elasticsearch_Nest - Fatal编程技术网 elasticsearch,nest,C#,elasticsearch,Nest" /> elasticsearch,nest,C#,elasticsearch,Nest" />

C# NEST ElasticSearch.NET转义特殊字符

C# NEST ElasticSearch.NET转义特殊字符,c#,elasticsearch,nest,C#,elasticsearch,Nest,我一直在尝试使用NEST客户端进行弹性搜索,但在筛选包含特殊/保留字符(如“/”的术语时,似乎遇到了障碍 下面是我的模型的JSON表示 "categories": { "count": 1, "default": "root/Hello/World/Category", } 当提交对categories.default字段的任何部分(例如“root”或“Hello”)的搜索时,我将收到一个匹配项,但是当搜索完整字符串或任何包含“/”的字符串时,找不到匹配项 我从一些研究中了解到

我一直在尝试使用NEST客户端进行弹性搜索,但在筛选包含特殊/保留字符(如“/”的术语时,似乎遇到了障碍

下面是我的模型的JSON表示

"categories": {
    "count": 1,
    "default": "root/Hello/World/Category",
}
当提交对categories.default字段的任何部分(例如“root”或“Hello”)的搜索时,我将收到一个匹配项,但是当搜索完整字符串或任何包含“/”的字符串时,找不到匹配项

我从一些研究中了解到,这是因为在索引/标记化过程中,保留字符被替换了,但是我还无法确定解决这个问题的方法

任何帮助都将不胜感激

下面添加了示例搜索查询

var result = ElasticSearchClient.Search<Schema.Product>(s => s
    .From(0)
    .Size(10)
    .MatchAll()
    .FilterRaw("{ \"term\": { \"categories.default\": \"root/Hello\" } }")
);
var result=ElasticSearchClient.Search(s=>s
.从(0)
.尺寸(10)
.MatchAll()
.FilterRaw(“{\”term\“:{\”categories.default\“:\”root/Hello\“}}”)
);

由于破折号导致术语被拆分,您需要设置多字段。我找到了一个类似问题的答案,这个问题也回答了你的问题:

NEST是否是问题还不完全清楚。我怀疑您的字符串分析器可能在
/
上拆分,从而使您的匹配与您预期的不同(我希望您可以匹配四个术语,
你好
世界
,和
类别
)。您能在问题中包括您的映射和查询吗?这将有助于快速发现问题我几乎可以肯定这是事实,因为我没有使用任何特殊映射(除了嵌套库中的自动映射)。我确实看了索引分析器,但不确定我需要使用哪一个来强制进行完全匹配(理想情况下,我希望按类别或url进行筛选),谢谢。这正是我想要的