代码之家  ›  专栏  ›  技术社区  ›  Josh

C,多核Solr,Lucene,碎片,不区分大小写的“包含”搜索,和一个巨大的偏头痛。

  •  0
  • Josh  · 技术社区  · 16 年前

    我对我的实现非常感兴趣。

    我们有一个Solr服务器正在运行。我们有3个核心,为了简单起见,我们称它们为“成员”、“业务”和“产品”。

    我本来想用solrnet,但它不支持分片。所以,我担心我将不得不自己构建URL。

    所以,当我发现一个问题时,我使用管理工具构建了一些用于查询的示例URL。solr执行“equals”而不是“contains”,并且区分大小写。我知道我可能把这一切都搞错了。

    所以,我已经读到,我需要将qt参数设置为“depax”,只有当我只搜索成员的核心时,通过管理工具,我得到“未定义的字段价格”……我的成员没有价格字段。不过,我的产品确实如此。

    我需要对我的查询执行以下操作。

    1. 跨多个核心搜索(切分)
    2. 大小写不敏感
    3. 包含单词而不是等号单词
    4. 搜索多个字段
    5. 声明字段的优先级(先搜索名称,然后搜索描述等)

    我的查询可能都错了,但这里显示的是(为了保护无辜的人而更改了服务器名称)名称字段实际上是用户名字和姓氏的具体化……所以我想看看Destax是否会看到名称中是否包含单词Jim(不区分大小写)。

    mysolrserver.mydomain.int:8080/solrqa/select?indent=on&version=2.2&q=name:jim&fq=&start=0&rows=10&fl=*%2cscore&qt=deparx&wt=standard&explaineother=&hl.fl=&shards=mysolrserver.mydomain.int:8080/成员,mysolrserver.mydomain.int:8080/企业

    任何帮助都将不胜感激。

    1 回复  |  直到 16 年前
        1
  •  3
  •   Mauricio Scheffer    16 年前
    1. 索尔内特和切丁:你试过 ExtraParams 财产?
    2. 不区分大小写:这由 LowerCaseFilterFactory
    3. 包含字:这是由记号赋予器处理的,例如whitespaceTokenizerFactory。
    4. 搜索多个字段并提升:由于您使用的是Destax,请参见 qf 参数。
    推荐文章