【问题标题】:ParseException Unknown function termfreq in FunctionQuery函数查询中的 ParseException 未知函数 termfreq
【发布时间】:2012-01-24 15:43:26
【问题描述】:

如果我的查询在上面的链接中针对 Apache 3.5 SOLR 的表述不正确,那么正确的语法是什么,我是否必须启用 solrconfig.xml 和 schema.xml 中的任何特定内容

使用 Apache SOLR 3.5 并在 FunctionQuery(tf(text,amplifiers)' 中接收 ParseException Uknown 函数 termfreq'

http://localhost:8983/solr/select/?fl=score,documentPageId&defType=func&q=tf%28text,amplifiers%29

我正在遵循其他网站上的语法,因为我不知道如何为 wiki 上的文档执行此操作 --> http://wiki.apache.org/solr/FunctionQuery

【问题讨论】:

标签: solr


【解决方案1】:

不行,你尝试使用的函数查询tf(field, term)在3.5中不可用,浏览ValueSourceParser if你想仔细检查。您需要从主干获取 Solr 4.x nightly build - Solr Nightly Build 并使用它,但要注意 Solr 4.x 尚未稳定发布,会有与 3.5 相比,API 发生了重大变化。

如果您有兴趣深入研究代码,例如,如果您正在使用Maven,则可以修改 pom.xml 以从 Trunk 获取 atrifacts 并浏览从 ValueSourceParser 开始的源代码,这应该会让您知道这些相关功能是否存在以及它们的实现方式。

例如:您将看到与术语向量函数查询相关的解析器,

 // From Solr 4 `ValueSourceParser` Trunk Source Code
 addParser("tf", new ValueSourceParser() {
    @Override
    public ValueSource parse(FunctionQParser fp) throws ParseException {
      TInfo tinfo = parseTerm(fp);
      return new TFValueSource(tinfo.field, tinfo.val, tinfo.indexedField, tinfo.indexedBytes);
    }
 });

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-09-02
    相关资源
    最近更新 更多