我刚开始使用的Solr和SolrNet。在我对当前项目进行太多调整之前,我想验证自己是否正确。这是我想实现:Solr的和SolrNet问题,并指导
基本要求:
- 提供,搜索对多个实体(汽车,轮船,飞机,自行车等),我只是做了这些在这里搜索解决方案。每个实体可以具有可变数量的非对称数据的字段。
- 为每个实体提供构面。
- 为每个实体提供过滤器。
工作流程:
- 与长期用户搜索。
- 四链路,一个用于每个实体已显示具有数值旁边指示每个实体的命中数。
- 用户单击一个链接并显示该页面的面和该实体的搜索结果。
所以,有了这一要求,这里是我迄今所做的:
- 创建一个单一的指标,但与像car_name,car_model,car_company,ship_name,ship_model,ship_company每个实体的具体领域, ship_age,ship_size等
- 我在指数,其被设置为实体之一的字段ENTITY_TYPE。
- ID在所有实体中都是唯一的。
- 我有一个DisMax搜索处理机solrconfig.xml中,在我把所有的领域(从所有实体)应搜索上。
这里是我的DisMax搜索处理机的样子:
<requestHandler name="DisMax" class="solr.SearchHandler">
<lst name="defaults">
<str name="echoParams">explicit</str>
<str name="defType">edismax</str>
<str name="qf">
car_name car_company car_model ship_name ship_company ship_model ship_sailing_route plane_name plane_company plane_model bicycle_name bicycle_company bicycle_model
</str>
<str name="q.alt">*:*</str>
<str name="rows">10</str>
<str name="fl">*,score</str>
<str name="facet">on</str>
<str name="facet.field">car_comapny</str>
<str name="facet.field">car_model</str>
<str name="facet.field">ship_name</str>
<str name="facet.field">ship_company</str>
<str name="facet.field">ship_sailing_route</str>
...
</lst>
</requestHandler>
最后,这里是我的问题:
- 这是一个索引的路线是正确的做法,或者我应该创建单独的每个实体的索引?请解释。
- 如果它们应该是单独的索引,我如何在给定的术语上搜索它们?重要的是,我如何使用SolrNet来做到这一点?
- 有没有一种方法可以搜索使用SolrNet的所有实体并检索结果?或者是否需要为每个实体分别执行查询(可能会并行)使用相同的搜索词?
- 我有应可作为DisMax处理程序方面,你可以看到的所有字段的列表,这是正确的做法?如果不是,那是什么?
我相信当我通过我的项目工作时,我会有更多的问题,但现在这会做。
您只是部分回答了我的问题,所以我不接受它作为正式答案,但非常感谢您的意见。由于我索引的记录量很低,因此我将使用单一索引。 – codelove 2012-04-17 14:30:35