我有日期字段,该字段与以下映射一起存储:
"RecordedDate": {
"type": "string",
"analyzer": "DateAndNumber"
}
这是分析器:
"DateAndNumber": {
"pattern": "([/\\-]+)",
"type": "pattern"
}
当我使用以下查询进行搜索时:
"query": {
"query_string": {
"default_field": "RecordedDate",
"query": "RecordedDate:2\\/2\\/1902",
"default_operator": "and"
}
我有很多不相关的搜索结果,其中包含
2
和1902
术语。例如:2/18/1902
,5/2/1902
而不是2/2/1902
。是否有任何方法可以使分析仪也将术语位置/偏移考虑在内?
最佳答案
您可以在建议的查询中将auto_generate_phrase_queries
设置为true。您可以在docs中找到更多详细信息。如果这对您不起作用,您也可以直接使用词组查询-phrase query完全可以满足您的要求。
如果您的DateAndNumber
字段中只有日期,则最好使用 date
类型的字段。