gpt4 book ai didi

firebase - ElasticSearch:防止小写索引

转载 作者:行者123 更新时间:2023-12-02 22:22:56 25 4
gpt4 key购买 nike

我正在将Firebase数据重新索引到ElasticSearch以进行多位置查询。

但是,例如,当我保存由id自动生成的ref.child('Users').push()时:-KrjGdtUqG8LkTvTZKXO被索引为小写字符串(krjgdtuqg8lktvtzkxo)。
因此,当我在ElassticSearch中按ID对用户进行排序时,其顺序与Firebase不同。

如何正确索引id以便将订单保留在Firebase中?

最佳答案

您的问题是,当您使用Elasticsearch而不为您的字段定义分析器时,默认情况下Elasticsearch将使用标准分析器。标准分析仪将小写您的内容。

要解决您的问题,您应该定义一个自定义分析器或使用在索引建立时不对内容进行小写的分析器。

我将向您展示如何使用标准分析仪以外的其他分析仪:

{  
"mappings":{
"yourIndex":{
"properties":{
"theFieldWithYourID":{
"analyzer":"whitespace"
}
}
}
}
}

在映射中,您可以为所需字段定义另一个分析器。空格分析器不会小写内容: White space analyser documentation

编辑:
一种更干净的方法来执行您想要的操作,是在映射中指定您正在使用关键字,并且不应对其进行索引:
PUT yourIndex/_mapping/yourDocType
{
"properties":{
"YourFireBaseID":{
"type":"keyword",
"index":"not_analyzed"
}
}
}

关于firebase - ElasticSearch:防止小写索引,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45740887/

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