使用弹性应用程序搜索实现基于标签的搜索
Implement search based on tags with elastic app-search
上下文
我正在为当地公社建立一个网站,我有一个“联系人”列表,除其他事项外,还分配了职责。
网站的用户应该能够搜索给定的职责,然后找到分配该工作领域的人员。
问题
与原生弹性搜索相比,应用搜索平台仅提供一些非常基本的数据类型。我决定将职责存储为逗号分隔值列表。
“联系人”文档示例
{
"firstname": "John",
"lastname": "Doe",
"responsibilities": "Fire safety, Budgeting, Weddings"
}
当我实现搜索栏时,提前输入将显示整个字段
这显然不是一个好的体验。另一个问题是我不能有意义地刻面和
过滤值。
我尝试了什么
一种可能的方法是像这样创建多个“责任”字段:
{
"responsibility_1": "Fire safety",
"responsibility_2": "Budgeting",
...
}
但感觉很脏,需要我实施硬限制,但仍然没有解决分面问题。
我想到的另一件事是禁用 responsibilities
字段进行搜索。然后我会根据当前查询应用提升和过滤器。但是,这将意味着只能搜索“责任”而不能基于文档上的其他字段。
我怎样才能实现这种“标记”?还是我运气不好,需要原生弹性?
我需要某种“数组”字段类型,但应用搜索没有实现这种类型。
我依赖于应用搜索平台,迁移到原生弹性搜索意味着需要花费大量时间。
您需要像这样创建一个值数组:
{
"firstname": "John",
"lastname": "Doe",
"responsibilities": ["Fire safety", "Budgeting", "Weddings"]
}
中所述,appsearch 支持数组
3. Arrays are supported
上下文
我正在为当地公社建立一个网站,我有一个“联系人”列表,除其他事项外,还分配了职责。
网站的用户应该能够搜索给定的职责,然后找到分配该工作领域的人员。
问题
与原生弹性搜索相比,应用搜索平台仅提供一些非常基本的数据类型。我决定将职责存储为逗号分隔值列表。
“联系人”文档示例
{
"firstname": "John",
"lastname": "Doe",
"responsibilities": "Fire safety, Budgeting, Weddings"
}
当我实现搜索栏时,提前输入将显示整个字段
这显然不是一个好的体验。另一个问题是我不能有意义地刻面和 过滤值。
我尝试了什么
一种可能的方法是像这样创建多个“责任”字段:
{
"responsibility_1": "Fire safety",
"responsibility_2": "Budgeting",
...
}
但感觉很脏,需要我实施硬限制,但仍然没有解决分面问题。
我想到的另一件事是禁用 responsibilities
字段进行搜索。然后我会根据当前查询应用提升和过滤器。但是,这将意味着只能搜索“责任”而不能基于文档上的其他字段。
我怎样才能实现这种“标记”?还是我运气不好,需要原生弹性?
我需要某种“数组”字段类型,但应用搜索没有实现这种类型。 我依赖于应用搜索平台,迁移到原生弹性搜索意味着需要花费大量时间。
您需要像这样创建一个值数组:
{
"firstname": "John",
"lastname": "Doe",
"responsibilities": ["Fire safety", "Budgeting", "Weddings"]
}
中所述,appsearch 支持数组
3. Arrays are supported