【发布时间】:2020-05-08 19:50:06
【问题描述】:
我们从 JSON 格式的应用程序表单中接收数据,并且需要能够对其进行搜索 - 但仅限于用户输入的文本。我们来自其他来源的一些数据以 XML 的形式出现,这很好 - html_strip (https://www.elastic.co/guide/en/elasticsearch/reference/current/analysis-htmlstrip-charfilter.html) 字符过滤器可以完成这项工作。
但是是否有 JSON 的等价物 - 您将序列化的 JSON 作为文本发送,它会去除标签,只留下数据?
一个非常简单的例子:
申请表发回此数据:
{
"ed_hist1": "Glasgow High School",
"ed_hist2": "Edinburgh University"
}
这会被序列化并作为文本字段添加到我们的文档中:
{
"Type": "applicationform",
"Id": 1,
"Name": "Margaret Blenkinsop",
"Email": "JohnB232@myCompany.COM",
"Text": "{\"ed_hist1\":\"Glasgow High School\",\"ed_hist2\":\"Edinburgh University\"}"
}
然后发送到 ES。
当我搜索文本字段时,我不想只找到“ed_hist1”或“ed_hist2”“格拉斯哥高中”和“爱丁堡大学”。
或者是预处理 JSON 的唯一方法? (这很好,但如果 ES 会为我处理,我不想手动编写代码。)
【问题讨论】:
标签: elasticsearch