Solr to Tokenize on white space,逗号和句点

use*_*965 2 solr solrnet solr4

我试图迫使Solr在白色空格,逗号:;.上标记文档 .与SQL Server全文搜索类似的东西.如果我使用text_general字段然后它标记其他字符也像('/','\','-')我尝试使用

<tokenizer class="solr.PatternTokenizerFactory" pattern="\s*,:;\s*"/>
Run Code Online (Sandbox Code Playgroud)

但它没有标记它.这是我的FieldType样子:

<fieldType name="text_sqlserver" class="solr.TextField" positionIncrementGap="100">
  <analyzer type="index">
    <tokenizer class="solr.PatternTokenizerFactory" pattern="\s*,:;\s*"/>
    <filter class="solr.StopFilterFactory" ignoreCase="true" words="stopwords.txt" />
    <filter class="solr.LowerCaseFilterFactory"/>
  </analyzer>
  <analyzer type="query">
    <tokenizer class="solr.PatternTokenizerFactory" pattern="\s*,:;\s*"/>
    <filter class="solr.StopFilterFactory" ignoreCase="true" words="stopwords.txt" />
    <filter class="solr.SynonymFilterFactory" synonyms="synonyms.txt" ignoreCase="true" expand="true"/>
    <filter class="solr.LowerCaseFilterFactory"/>
  </analyzer>
</fieldType>
Run Code Online (Sandbox Code Playgroud)

有什么我想念的吗?我也必须搜索不区分大小写的比较.

Eri*_*ult 6

你的模式实际上是错误的,尝试这样的事情: pattern="[\s,;:]"

您可能想尝试的替代方案: