Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ruby-on-rails-3/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在没有停止词的情况下对solr进行排序_Solr_Stop Words - Fatal编程技术网

如何在没有停止词的情况下对solr进行排序

如何在没有停止词的情况下对solr进行排序,solr,stop-words,Solr,Stop Words,我试图通过忽略stopwords的字段对solr查询进行排序,但似乎找不到这样做的方法。例如,我希望结果按如下方式排序: 查理 狐狸 直升机 这可能吗?现在,字段类型的定义如下: 添加的字段如下所示: 好像其他人也会这么做?或者不使用stopwords进行排序是不允许的?您需要实际将stopwords过滤器添加到解析器链中。将要索引的文本粘贴到Solr Admin中的字段分析器中,您将看到Fox中的A没有被删除 使用Eric提到的分析器,我确定停止词过滤器只捕获匹配的确切单词,而不是

我试图通过忽略stopwords的字段对solr查询进行排序,但似乎找不到这样做的方法。例如,我希望结果按如下方式排序:

  • 查理
  • 狐狸
  • 直升机
这可能吗?现在,字段类型的定义如下:


添加的字段如下所示:



好像其他人也会这么做?或者不使用stopwords进行排序是不允许的?

您需要实际将stopwords过滤器添加到解析器链中。将要索引的文本粘贴到Solr Admin中的字段分析器中,您将看到Fox中的A没有被删除

使用Eric提到的分析器,我确定停止词过滤器只捕获匹配的确切单词,而不是句子的片段。所以,如果有“THE”的标记,它会将其删除。但是,如果有“鱼”的标记,它就不会碰它


那么,有没有办法让这一切顺利进行?我只想在字段上排序,忽略任何停止词。但结果是一堆句子(或书名)。

关键字TokenizerFactory不会将内容分解为单独的片段,因此StopFilterFactory尝试将标记(整个内容)与停止词列表匹配,但未找到匹配项。要从索引中取出停止字,需要使用像WhitespaceTokenizerFactory这样的标记器,但不能对标记化字段进行排序。因此,我能想到的唯一方法是:

  • 仍然使用关键字TokenizerFactory
  • 摆脱StopFilterFactory
  • 以及使用PatternReplaceFilterFactory(当前用于提取数字)的正则表达式从内容中删除停止字

  • 通常,您要排序(而不是搜索)的唯一停止词是“A”、“AN”、“the”。我不太擅长reg表达式,但我相信这对许多人来说是微不足道的。

    请修复xml格式。我有stopword筛选器,但它没有出现在SO问题中。我已经修好了。我也没有意识到有一个现场分析仪。我可以使用它进行更快的调试,但我仍然有这个问题。。。我能想到的唯一一件事是stopwords.txt文件需要在其他地方?stopwords.txt应该在您的/conf/dir中