solr

  • solr-搜索-Solr解析器通用的查询参数

    本文主要介绍下Solr解析器中通用的查询参数。这些参数能够在标准查询解析器DisMax查询解析器eDisMax查询解析器中通用。

  • solr-搜索-查询中的局部参数

    局部参数是Solr请求的特定的一种查询参数。局部参数提供了设置某些元数据的方法,比如,查询字符串。(在Solr文档中,局部参数有local parameters和LocalParams两种写法。)
    局部参数指定参数的前缀,以下面的查询参数为例:

    q=solr rocks

    我们可以为这个查询串设置局部参数,来为标准查询解析器提供更多的信息。比如,我们修改默认操作符为AND和默认搜索域为“title”:

    q={!q.op=AND df=title}solr rocks

    这样就能够在搜索过程中,查询“title”域中匹配的“solr”和“rocks”的结果。

  • solr-搜索-eDisMax查询解析器

    DisMax扩展(eDisMax)查询解析器是DisMax查询解析器的升级版。除了支持所有DisMax查询解析器参数外,还扩展了DisMax:

    • 支持完整的Lucene的查询分析器语法。
    • 支持查询,例如AND, OR, NOT, -, 和 +
    • 在Lucene查询语法模式中,把 andor 当做 ANDOR
    • 使用“魔术字段” _val__query_。这些字段在schema.xml中不存在,但可以用他们来做一些特别的事情(比如使用 _val_ 做方法查询,或使用 _query_ 做嵌套查询)。如果在候选词或短语查询中使用 _val_,它将被解析为一个方法。
    • 在语法错误的情况下,包括改进的智能部分逃逸;字段查询、+/- 和 短语查询在这种模式中也可用。
    • 使用word shingles改进接近加权;您不需要查询来匹配文档中的所有单词,在接近提高之前应用。在接近加权提供前,你不需要查询匹配所有单词。
    • 包括先进的停用词处理:停用词不是查询必需部分,但却在接近加权部分中使用。如果查询包含所有停用词,比如”to be or not to be”,则所有词都必须存在。
    • 包括改进的加权方法:在eDisMax中,加权方法是乘数而不是加数,改善加权效果;DisMax中的加和的加权(bf和bq)也同样支持。
    • 支持纯消极嵌套查询:查询如+foo(-foo)将查询匹配所有文档。
    • 可以指定终端用户可以查询哪些字段,和禁止直接指派搜索。

    • solr-搜索-标准查询解析器

      Solr默认的查询解析器使用的lucene解析器。
      标准查询解析器的主要优势在于它支持强大且直观的语法,允许创建各种结构化的查询。与DisMax查询解析器相比,最大的缺点是它不能够容忍语法错误,而DisMax查询解析器比设计为尽可能少的返回错误。

    • solr-搜索-层面分析

      在部分概述在Solr搜索描述,分类是基于索引的搜索结果方面的安排。搜索与索引方面,随着数值计算有多少匹配的文件被发现是每学期。小面很容易让用户探索的搜索结果,缩小正是他们正在寻找的结果。
      根据Solr搜索概述中的描述,层面分析是基于搜索结果的排列。所有的Searcher都携带有索引term,随着匹配文档,term也被发现。层面分析简化用户对搜索结果的处理,缩小查找结果范围。

    • solr-搜索-DisMax查询解析器

      DisMax查询解析器设计的初衷是处理用户输入的简单短语(没有复杂语法),在多个根据不同含义使用不同权重的字段间进行搜索。另外还有额外的选项,使用户可以根据具体用例(根据用户的输入)影响打分。
      总的来说,DisMax查询解析器比标准Solr查询请求更像Google的接口。对于许多付费应用,这种相似性使DisMax成为更加适当的查询解析器。她能够接收简单的语法,却很少发生错误。