您如何为eshop应用程序构建索引/类型?这样的eshop将由诸如产品,类别,标签,制造商等的域对象组成。全文搜索结果页面应该显示所有域对象的混合列表。
我可以想到两个选择:
哪个选项可以更好地扩展?
大多数"项目"在数据库中是产品。有些产品还没有/现在可用。如何提升目前可用的产品?
全文应该更喜欢在页面顶部显示类别/制造商。如何从某个索引中提升某些类型/对象?
答案 0 :(得分:2)
为了获得更好的表现,我建议第一个选择更好。
1)“每个应用程序一个索引,每个域对象作为一个类型。”
2)考虑创建名为“ eshop ”的索引。以及移动,书籍等类型
3)因为您可以根据您的用户输入进行查询。考虑您创建像flipkart这样的购物网站。在搜索中,用户可以使用普通关键字进行搜索。
4)现在你只需要提到索引名就可以在Elasticsearch中搜索。如果用户引用和手机一样的过滤器,范围1000-10000.你需要在移动类型内搜索,而且我们可以轻松过滤Elasticsearch.it会减少你的执行内存和CPU。
提升可用产品。在您的文档中添加一个名为“ available”的字段。在搜索时提及可用产品的提升值。例如:
{
"query": {
"term": {
"available": true
}
}
"boost": 1.5
}
有关更多提升的内容,请参阅
http://www.elasticsearch.org/guide/en/elasticsearch/reference/current/query-dsl-boosting-query.html
http://jontai.me/blog/2013/01/advanced-scoring-in-elasticsearch/