1

我刚开始探索 SolrNet。以前我一直在使用 MSSQL FULL TEXT。

在 sql server 中,我的查询进行全文搜索,并且还有多个连接和 Where 子句。我还使用自定义分页仅返回数百万行中的 10 行。

我已经阅读了一些 solrNet 文档并运行了博客上提供的示例应用程序。到目前为止一切都运作良好。只需要了解一下,我该如何处理 JOINS 和 WHERE 子句?

例如,如果用户搜索三星,db 将返回 10 万条记录,但如果用户搜索三星 && City='New york' && Price >'500',那么他只会得到几千条记录。

  • 我是否在 Solr 中添加所有列并在 Solr 中编写 WHERE 子句?
  • 我该如何处理 SQL JOINS?

提前致谢!

4

2 回答 2

1

Solr 中没有连接。来自Solr 维基

Solr 提供一张表。在索引中存储一组数据库表通常需要对某些表进行非规范化。避免非规范化的尝试通常会失败。

关于 WHERE 子句(即过滤),请参阅SolrNet中的查询、Solr 查询语法通用 Solr 查询参数

于 2011-06-14T18:15:57.937 回答
1

Solr 等效于 where 子句是将列映射到字段并根据查询语法运行查询。像您的示例这样的查询:

 Samsung && City='New york' && Price >'500' 

在 Solr 中可以翻译成这样的:

 q=Samsung AND city:"new york" AND price:[500 TO *]

将数据库映射到 Solr 模式时需要小心,特别是您可能必须对数据进行非规范化。有关更多信息,请参阅Solr wiki 上的此页面。基本上,你不能在 Solr 中真正做复杂的 JOIN。这是一个“平坦”的指数。

于 2011-06-14T18:15:58.120 回答