我有一个分类广告网站,有大约30种分类广告。
我正处于必须构建MySQL表并使用SOLR索引它们的阶段。 表格中的每一行都有大约15个字段......
我正在寻找表现!
我想知道这两种方法中哪一种效果最好:
1-每个类别都有一个MySQL表,表示30个表,然后在SOLR中有多个索引(这意味着如果用户只想搜索一个特定的类别,那么搜索表/索引,从而获得性能(我认为)。但是,如果用户一次搜索所有类别,则必须搜索所有表/索引。)
2-只有一个MySQL表,SOLR中只有一个索引。
由于
答案 0 :(得分:0)
假设所有不同类型的分类都具有相同的结构,我会做以下事情:
将文本与另一个类别字段(以及与类别相关的其他信息的其他字段)一起存储在单个表中。
在Solr中,构建一个具有文本字段,类别字段和PK字段的索引。文本和类别字段将被编入索引但不存储,PK字段(存储与MySQL表对应的主键)将被存储但不会被编入索引。
允许用户进行两种搜索:一种只包含文本,另一种包含文本和类别。对于后者,类别应该是完全匹配。 Solr搜索将返回一个PK列表,这样您就可以从MySQL中检索文档。
通过将索引分成30个索引,您不会看到很多性能提升,因为Solr / Lucene已经非常有效地通过其倒排索引查找数据。指定类别名称就足够了。