gpt4 book ai didi

elasticsearch - ElasticSearch-指定字符串字段的范围

转载 作者:行者123 更新时间:2023-12-03 00:24:11 25 4
gpt4 key购买 nike

我试图从一个名为text的字符串字段中检索1933年至1949年之间的年份。但是,我似乎找不到该范围的工作范围查询。到目前为止,我试图崩溃的是:

   {"query":
{"query_string":
{
"text": [1933 TO 1949]
}
}
}

我也这样尝试过:
   {"query":
{"filtered":
{"query":{"match_all":{}},
"filter":{"range":{"text":[1933 TO 1949]}
}
}
}

但它仍然崩溃。

下面是一个示例文本字段,其中提到了1933年:

“1933年(PrimeraDivisión),阿根廷的seizoen \ n * PrimeraDivisión 1933(智利),selezoen在de Chileense voetbalcompetitie \ n * PrimeraDivisión1933(乌拉圭),seizoen在de乌拉圭亚安\

但是,我也有不包含任何年份的文档,我想过滤所有文档以仅保留在给定期间内提到年份的文档。我在这里 http://www.elasticsearch.org/guide/en/elasticsearch/reference/current/query-dsl-query-string-query.html阅读到,范围查询也可以应用于文本字段,并且我不想使用任何中间解决方案来标识文本中的日期。

我基本上想要实现的是能够获得与使用搜索URI查询时相同的结果:
     urltomyindex/_search?q=text:%7B1933%20TO%201949%7D%27

完美地运作。
还有可能实现我的目标吗?任何帮助,不胜感激!

最佳答案

应该这样做:

GET index1/type1/_search
{
"query": {
"filtered": {
"filter": {
"terms": {
"fieldNameHere": [
"1933",
"1934",
"1935",
"1936",
"1937",
"1938",
"1939",
"1940",
"1941",
"1942",
"1943",
"1944",
"1945",
"1946",
"1947",
"1948",
"1949"
]
}
}
}
}
}

如果您知道您将经常需要这种搜索,那么最好创建一个新的域“yearPublished”或类似的东西,这样您就可以将其搜索为数字而不是文本字段。

关于elasticsearch - ElasticSearch-指定字符串字段的范围,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27708184/

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