C#,多核solr,Lucene,分片,不区分大小写的“包含”搜索,以及一个巨大的偏头痛

时间:2010-08-25 20:40:14

标签: c# search solr multicore sharding

我的实施时间很短暂。

我们正在运行一个solr服务器。我们有3个核心,为了简单起见,我们称之为“会员”,“企业”和“产品”

我试图使用solrnet,但它不支持分片。所以,我担心自己必须建立网址。

因此,当我发现问题时,我使用管理工具为查询构建了一些示例网址。 Solr做“等于”而不是“包含”,它区分大小写。我知道我可能会犯这个错误。

所以,我已经读过我需要将qt param设置为“dismax”,只有当我通过管理工具搜索成员的核心时,才会得到“未定义的字段价格”....我的成员不会有一个价格领域。我的产品确实如此。

我需要在查询时执行以下操作。

  1. 搜索多个核心(分片)
  2. 不区分大小写
  3. 包含单词而不是等于单词
  4. 搜索多个字段
  5. 声明字段的优先级(首先搜索名称,然后搜索说明等)
  6. 我的查询可能都错了,但这就是它的样子(更改了servername以保护无辜)名称字段实际上是用户的名字和姓氏的连续......所以我试图看看是否dismax会看到该名称是否包含单词jim(不区分大小写)。

      

    mysolrserver.mydomain.int:8080/solrQA/select?indent=on&version=2.2&q=Name:jim&fq=&start=0&rows=10&fl = *%2Cscore&安培; QT = dismax&安培;重量=标准&安培; explainOther =安培; hl.fl =安培;碎片= mysolrserver.mydomain.int:8080 /成员,mysolrserver.mydomain.int:8080 /商家

    非常感谢任何帮助。

1 个答案:

答案 0 :(得分:3)

  1. SolrNet和分片:您是否尝试过ExtraParams属性?
  2. 不区分大小写:这由LowerCaseFilterFactory
  3. 处理
  4. 包含word:这由tokenizer处理,例如WhitespaceTokenizerFactory。
  5. 搜索多个字段并进行提升:由于您使用的是dismax,请参阅qf参数。