我是 Solr 的新手,我遇到了匹配可能包含空格的正则表达式搜索问题。
一个例子是搜索带有区号的电话号码。
我索引以下字符串:
打电话给我 01234 567890
在这种情况下,我的正则表达式是: /[0-9{5} ?[0-9]{6}/
创建网址:
http://localhost:8983/solr/core/select?q=content%3A%2F%28[0-9]{5}%29+%3F%28[0-9]{6}%29%2F&wt =xml&缩进=真
但我没有得到任何点击。
我的 schema.xml 包含以下内容:
<fieldType name="general_text" class="solr.TextField" omitNorms="true" positionIncrementGap="100">
<analyzer type="index">
<tokenizer class="solr.UAX29URLEmailTokenizerFactory" />
<filter class="solr.LowerCaseFilterFactory" />
</analyzer>
<analyzer type="query">
<tokenizer class="solr.UAX29URLEmailTokenizerFactory" />
<filter class="solr.LowerCaseFilterFactory" />
</analyzer>
</fieldType>
<field name="content" type="general_text" indexed="true" stored="true" required="false" multiValued="true" />
在数据被索引后,我可能需要运行不同的正则表达式,所以我认为在我的情况下使用 PatternTokenizerFactory 不会起作用。我正在使用 UAX29URLEmailTokenizerFactory 因为我需要识别电子邮件地址。是否可以以这种方式使用空格执行正则表达式搜索?
有人可以建议我为实现这些正则表达式命中需要进行哪些更改吗?