我对 Solr 很陌生,我想用它在我正在构建的问答网站(Quora 之类)上进行搜索。
以下是问题和回答者的方式:问题 - 标题 - 描述 - 标签(社交标签) - 分数(分数来自用户对问题的赞成/反对票)
答案 - 描述 - 标签 - 分数(分数来自用户对答案的赞成/反对票)
当然,您可以根据需要对问题有尽可能多的答案。
将有三种类型的文档需要被索引:问题、文章、...
就索引而言,使问题和答案可搜索的最佳策略是什么?
如果您使用的是DataImportHandler,您可以<entity>
为问题设置一个子实体,然后为答案指定一个子实体。例如:
<document name="questions">
<entity name="question" query="select id, question from questions">
<field column="id" name="id" />
<field column="question" name="question" />
<entity name="answer"
query="select question_id, answer from answers"
cacheKey="question_id"
cacheLookup="question.id"
processor="CachedSqlEntityProcessor">
<field name="answer" column="answer" />
</entity>
</entity>
</document>
请注意,此示例使用CachedSqlEntityProcessor来避免不必要地访问数据库。