首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在elasticsearch中进行全文搜索

问如何在elasticsearch中进行全文搜索
EN

Stack Overflow用户
提问于 2016-04-05 18:10:09
回答 1查看 9.7K关注 0票数 3

我在表中有非常大的数据(超过4lc行)。现在我正在使用mysql全文搜索,但它非常慢。

我在谷歌上找到了很多建议使用弹性搜索的博客。我们正在测试弹性搜索是否有助于快速搜索。

但我们得到了相反的结果(mysql更好的搜索),但我怀疑我是否以正确的方式使用了弹性搜索。我使用的弹性搜索查询是:-

代码语言:javascript
复制
{
 "query" : {
     "bool" : {
        "must" : {
           "query_string" : {
               "query" : "goog*",
               "default_field" : "search"
           }
        }
     }
 },
 "size" : 1000
}

对于我们在mysql中使用的相同搜索

代码语言:javascript
复制
SELECT SQL_NO_CACHE * FROM table1 WHERE (MATCH (search) AGAINST (' +goog*' IN BOOLEAN MODE))

我得到时间差:-弹性时间= 0.34929585456848

mysql时间= 0.02162504196167

如果我的建议有误,我将不胜感激。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-04-05 19:05:33

查询有点慢的第一个原因是你在搜索时使用了通配符...

https://www.elastic.co/guide/en/elasticsearch/reference/current/analysis.html

https://www.elastic.co/guide/en/elasticsearch/reference/current/mapping.html

https://www.elastic.co/guide/en/elasticsearch/guide/current/search-in-depth.html

我会建议你研究弹性搜索映射,分析器,以获得弹性搜索的好处,你需要正确地索引你的数据,并应用正确的查询集……

Filename search with ElasticSearch

这是一个小的高级示例,仅展示如何在文件的单词之间实现搜索。

数据的索引方式也会影响搜索查询的时间,以及您将使用的查询本身。

你可以在这里注册,看看由elastic guys提供的不同类型的查询的短视频。

https://www.elastic.co/webinars/elasticsearch-query-dsl

在elastic-search中,如果没有适当的analysis..that,你就无法决定哪一个更好,因为在弹性搜索中,数据的索引影响很大。

票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/36423359

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档