gpt4 book ai didi

elasticsearch - ElasticSearch-将大文本字段保留在所有进程之外,但仍返回结果吗?

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

我们有一个ElasticSearch索引(ES版本6.4.2),其中包含100+百万个文档,每个文档包含大约5个字段。这些字段之一是新闻文章的全文。

问题在于,现在,我们在该索引上的搜索要花费5-6秒钟以上的时间才能返回结果,而我们所有其他索引(典型的结构化记录)都需要不到一秒钟的时间。事实是,我们根本不需要在查询时在包含新闻文本的字段内进行搜索,但是我们确实想在结果中返回该字段。

我在这里假设的是,所有这些新闻文本都在ES高速缓存中,并借给这些漫长的搜索时间,甚至在不需要时也是如此,因为我们无需搜索它们。是否有一种方法,由于缺乏更好的表达方式,因此将新闻文本字段排除在所有ES进程/缓存之外,但实际上仍在结果中返回该字段?我正在尝试测试提高此索引搜索速度的方法。

最佳答案

可以采用两种方法:

1. 为不应搜索的字段设置"index": false。阅读this

{
"fNews": {
"type": "text",
"index": false
}
}

2. 如果使用query_string查询进行搜索,则设置应在其上进行搜索的字段。假设您有3个字段 f1f2fNews,并且您不想搜索 fNews,那么查询将类似于以下内容:
{
"query": {
"query_string": {
"fields": [
"f1",
"f2"
],
"query": "some search string"
}
}
}

关于elasticsearch - ElasticSearch-将大文本字段保留在所有进程之外,但仍返回结果吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56992915/

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