【发布时间】:2019-10-08 08:54:45
【问题描述】:
我正在尝试为 elasticsearch 编写一个自定义原始查询,其中我需要通过包含多个由空格分隔的 ID 的字符串中的 ID 组合进行搜索。
搜索字段如下所示:
文档 1
"sentence": [
"1060 1764 1769 1770 1772 2807 2808 3570",
"1101 3402 3403",
"1101 1764 1769 1770 1772",
"1001 1060 1099 1100 1101 2806 2807 2808 3570"
]
文档 2
"sentence": [
"1060 2806 2807 2808 3570",
"1101 3402 3403",
"1101 1764 1769 1770 1772",
"1001 1060 1488 1489 1490 2806 2807 2808 3570"
]
例如,当使用参数“1060 和 1101”进行搜索时,它应该只返回文档 1,因为它在单个字符串中包含这两个值。 尽可能避免使用嵌套查询。
尝试使用 bool 必须匹配查询、匹配短语查询、查询字符串、简单查询字符串、bool 必须匹配过滤词查询、正则表达式组合。 一切都返回了一些东西,但不完全是我需要的。
【问题讨论】:
-
请分享您的映射。你的映射可以改变吗?要实现您想做的事情,您必须使用嵌套字段。
-
这是字段的映射 ``` "sentence": { "type": "text", "fields": { "keyword": { "type": "keyword", " ignore_above": 256 } } }, ``` 我猜他们可以为那个属性改变,是否可以只改变那个属性的映射?
-
要更新映射,您必须重新索引数据
标签: json elasticsearch elasticsearch-query elasticsearch-6.8