gpt4 book ai didi

c# - Elasticsearch Nest查询可在将字段与提供的值进行比较时修剪空白

转载 作者:行者123 更新时间:2023-12-03 00:58:23 31 4
gpt4 key购买 nike

我正在使用Nest API进行 flex 搜索,并且正在寻找一些解决方案,在比较具有提供的值的字段时可以修剪空白。

问题:-

Elastic DB的字段为“customField1” =“Jinesh”,我正在将值传递给搜索“Jinesh”,该值不进行比较也不提供结果。

我在寻找什么:-

它应该通过忽略 flex 场值中的空格来搜索精确提供的搜索值。

任何帮助将非常感激。

谢谢。

最佳答案

根据您的要求,有两种方法可以解决您的问题。我认为,最适合您的描述的一种是使用Regexp查询:

var result =
await
client.SearchAsync<object>(
searchDescriptor =>
searchDescriptor.Query(
queryDescriptor =>
queryDescriptor.Regexp(
regex => regex.OnField("customField1").Value(" *Jinesh *"))));

其他选项将使用 PrefixWildcardMatchPhrasePrefix

但是,这与Elasticsearch最佳做法背道而驰。

做到这一点的“Elasticsearch方法”将是使用剥离空白字符的分析器来分析属性(这意味着它将在没有空白的情况下保存在数据库中)。有两个这样做的分析器,即 standard分析器(默认分析器)或 whitespace分析器。您还可以添加一个自定义分析器,并将 Trim Token Filter与 token 生成器一起使用。

您可以通过 configuring your index做到这一点。

如果您需要一个不允许使用任何空白修剪的特定分析器,Elasticsearch建议您在索引中添加一个属性,该属性只是该属性的副本(即“customField1”),可以然后针对这种情况使用更适合的分析器。

关于c# - Elasticsearch Nest查询可在将字段与提供的值进行比较时修剪空白,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41033598/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com