我有一个简单的问题,我希望通过Elasticsearch寻求解决方案。
我有一个基于cms的网站,在该网站中会定期发布文章。现在,我需要在搜索框上自动填写关键字。
因此,例如,我有一个查询auto
,并且如果我的页面上有诸如autocomplete
,automatic
之类的关键字,则需要获取这些结果作为查询的输出。
现在考虑到我有很多专家,我认为基于整个站点本身具有自动完成构建功能不是一个明智的解决方案。只是想知道它的corerct是否适合elasticseaarch? 它说的依据是他们的文档。
我也很期待整个想法( 基于网站上每个关键字的自动建议 )
建议者使用的数据结构可实现快速查找,但构建成本很高,并且存储在内存中
这是代表文章的单个文档。
{
"_index" : "wagtail__wagtailcore_page",
"_type" : "doc",
"_id" : "5",
"_score" : 0.45485666,
"_source" : {
"pk" : "5",
"content_type" : [
"cms.StreamPage",
"wagtailcore.Page"
],
"title" : "understanding python data encoding issue",
"title_edgengrams" : "understanding python data encoding issue",
"title_filter" : "understanding python data encoding issue",
"id_filter" : 5,
"live_filter" : true,
"owner_id_filter" : 1363,
"content_type_id_filter" : 46,
"path_filter" : "0001000100010001",
"depth_filter" : 4,
"locked_filter" : false,
"show_in_menus_filter" : false,
"first_published_at_filter" : "2019-02-02T17:38:52.164462+00:00",
"last_published_at_filter" : "2019-02-03T04:04:01.011092+00:00",
"latest_revision_created_at_filter" : "2019-02-03T04:04:00.568733+00:00",
"cms_streampage__body" : [
"de",
"<p>tuftdf trdtrdrdrd trd trdtrdtrd trd trdtdt tdtrd tdt dtdtdtd tte detsettuftdf trdtrdrdrd trd trdtrdtrd trd trdtdt tdtrd tdt dtdtdtd tte detset</p><p>tuftdf trdtrdrdrd trd trdtrdtrd trd trdtdt tdtrd tdt dtdtdtd tte detsettuftdf trdtrdrdrd trd trdtrdtrd trd trdtdt tdtrd tdt dtdtdtd tte detset</p><p>tuftdf trdtrdrdrd trd trdtrdtrd trd trdtdt tdtrd tdt dtdtdtd tte detsettuftdf trdtrdrdrd trd trdtrdtrd trd trdtdt tdtrd tdt dtdtdtd tte detset</p>"
],
"_edgengrams" : [
"understanding python data encoding issue",
"understanding python data encoding issue"
]
}
}
]
}
}
如果查询为trd
,我应该获得所有以trd
键为cms_streampage__body
开头的列表