筛选文本字段搜索
* 
有关分析器、过滤器和分词器的更多详细信息,请参阅以下链接:
每个文本字段都使用 com.ptc.solr.analysis.PTCWordDelimiterFilterFactory 筛选器。此筛选器将字拆分为子字,并在子字组中执行可选转变。使用以下规则将字拆分为子字:
规则
示例
拆分词内分隔符 (默认情况下,所有非字母数字字符)
"Wi-fi" 拆分为 "Wi" 和 "Fi"
拆分大小写转变。
"TransAM" 拆分为 "Trans" 和 "AM"
会忽略每个子字上的前导和尾随字分隔符。
"__hello---there, 'dude'" 拆分为 "hello"、"there" 和 "dude"
将移除每个子字的尾随 "s" 字符。
* 
因为可能存在子字组合,所以不会在单独的筛选器中执行此步骤。
"O'Neil's" 拆分为 "O" 和 "Neil"。
此筛选器是随 Solr 一起提供的 solr.WordDelimiterFilter 的副本。已对其进行自定义,以保护以下字符:"."、"-" 和 "_"
拆分受以下参数影响:
generateWordParts=1
生成字的部分:"whistle-blower" = "whistle" "blower"
generateNumberParts=1
生成数字子字:"500-42" = "500" "42"
catenateWords=1
运行次数最多的字的各部分连接在一起:"re-confirm" = "reconfirm"
catenateNumbers=1
运行次数最多的数字的各部分连接在一起:"500-42" = "50042"
catenateAll=1
所有子字的各部分均相连:"wi-fi-4000" = "wifi4000"
splitOnCaseChange=1
拆分大小写转变:"PowerShot" = "Power" "Shot"
preserveOriginal=1
子字中包括原始单词:"500-42" = "500" "42" "500-42"
还会使用 com.ptc.solr.analysis.PTCSpecialCharacterFilterFactory 筛选器。此筛选器会针对 PTC 所保护的特殊字符结尾的标记创建子标记。目前,只有以下三种特殊字符受保护:
点或句点 (.)
短划线 (-)
下划线 (_)
使用以下规则创建子标记:
规则
示例
以句点 (.) 结尾的标记
"dot." = "dot.", "dot"
以短划线 (-) 结尾的标记
"dash-" = "dash-", "dash"
以下划线 (_) 结尾的标记
"under_" = "under_", "under"
* 
确保索引和查询时分词器保持相同的顺序。在查询时生成的标记应与索引给定字时使用的标记相同。
停止字词
$solr-home\wblib\conf\stopwords.txt 中提及的字不会进行索引。这些字应是用户在进行有意义的搜索中不会输入的字。例如,"if" 或 "not"。要在搜索中包括这些字,请将其从 stopwords.txt 中移除。
对于英语,将使用 text 字段,并使用 StopFilterFactory 筛选器对该字段进行配置。
同义词
$Solr-home\wblib\conf\synonyms.txt 中的同义词条目确保搜索一个字时可以查找其同义词的记录。您可以编辑此文件以输入或移除同义词。
SynonymFilterFactory 筛选器是针对英语 text 字段配置的。
autoCommit
在满足特定条件后,Windchill 使用 Solr 自动提交功能自动提交索引信息。
可以在 solrconfig.xml 中配置 autoCommit
此条件在下列元素中指定:
<updateHandler class="solr.DirectUpdateHandler2">
<autoCommit>
<maxDocs>1000</maxDocs>
<maxTime>60000</maxTime>
</autoCommit>
maxDocs
maxDocs 是触发 autocommit 前未提交的 Windchill 业务对象文档的最大数
maxTime
maxTime 是触发 autocommit 事件前添加 Windchill 业务对象文档的最长时间 (以毫秒为单位)
maxTimemaxDocs 值越高,索引搜索的执行效果越好。
但是,除非已提交索引信息,否则对象不会出现在搜索结果中。
* 
运行批量索引时,使用较高的值。
启用字母数字拆分
默认情况下,Windchill 搜索不标记字母数字转变。例如,字符串 "ABC123" 被索引为 "ABC123"。
您可以自定义 Solr 以启用字母数字拆分。启用后,字符串 "ABC123" 将按如下所示进行索引:
ABC123
ABC
123
要启用字母数字拆分,请执行以下操作:
1. 停止 Windchill
2. 导航至下列文件:
/solr-home/wblib/conf/conf_generic_field_types.xml
3. 查找以下所有实例:splitOnNumerics="0"
并替换为以下内容:splitOnNumerics="1"
4. 重新启动 Windchill
5. Windchill 重新启动后,使用成批索引工具重新索引数据。
这对您有帮助吗?