Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/sorting/2.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/solr/3.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
Sorting 特殊分拣_Sorting_Solr - Fatal编程技术网

Sorting 特殊分拣

Sorting 特殊分拣,sorting,solr,Sorting,Solr,我有solr中的文本字段,我希望它以特殊方式排序 title ------- The Book When Available 由于在我查询和排序asc字段时,(何时,开)单词包含在我的停止单词列表中,因此我希望它们显示为: When Available ( first ) The Book ( second ) 到目前为止,我已经尝试了不同的组合 <fieldType name="sortString" class="solr.TextField" sortM

我有solr中的文本字段,我希望它以特殊方式排序

title 
-------
The Book 
When Available 
由于在我查询和排序asc字段时,(何时,开)单词包含在我的停止单词列表中,因此我希望它们显示为:

When Available ( first  ) 
The  Book       ( second ) 
到目前为止,我已经尝试了不同的组合

<fieldType name="sortString" class="solr.TextField" sortMissingLast="true" omitNorms="true">
   <analyzer type="index">
    <tokenizer class="solr.KeywordTokenizerFactory"/>
    <filter class="solr.StopFilterFactory" ignoreCase="true" words="lang/stopwords_en.txt" enablePositionIncrements="true"/>

    .......
   </analyzer>
</fieldType> 

.......
等等,但没有成功,
有可能做到这一点吗

我怀疑这是行不通的

StopWordFiltering会过滤掉与stopwords匹配的标记,但关键字标记器实际上不会将文本拆分为多个标记。由于整个标题是一个标记,并且不是您的stopwords之一,因此筛选器不执行任何操作

然而,您不能在排序文本字段中使用任何其他标记器

因此,我看到两种选择:

第一,使用PatternReplaceFilter应用正则表达式并匹配/删除未中断文本值中的停止字

第二,删除准备Solr文档以提交给Solr的代码中的stopwords

与内置Solr停止字过滤器相比,两者都有明显的缺点。我个人非常频繁地使用选项二。第一种选择可能会变得非常难以管理,而不仅仅是几个停止词