我想在SOLR数据文件夹中上传FilePath,并使用LIKE操作通过我的网站进行搜索。
因为我尝试在模式文件中使用以下类型但是不成功。
尝试1。
<fieldType name="string_wildcards" class="solr.TextField" positionIncrementGap="100">
<analyzer type="index">
<tokenizer class="solr.StandardTokenizerFactory"/>
<filter class="solr.StandardFilterFactory"/>
<filter class="solr.LowerCaseFilterFactory"/>
<filter class="solr.StopFilterFactory" words="stopwords.txt" ignoreCase="true"/>
<filter class="solr.ISOLatin1AccentFilterFactory"/>
<filter class="solr.TrimFilterFactory" />
<filter class="solr.EdgeNGramFilterFactory" minGramSize="2" maxGramSize="30"/>
</analyzer>
<analyzer type="query">
<tokenizer class="solr.StandardTokenizerFactory"/>
<filter class="solr.StandardFilterFactory"/>
<filter class="solr.LowerCaseFilterFactory"/>
<filter class="solr.StopFilterFactory" words="stopwords.txt" ignoreCase="true"/>
<filter class="solr.ISOLatin1AccentFilterFactory"/>
<filter class="solr.TrimFilterFactory" />
</analyzer>
</fieldType>
Try2。使用Letter Tokeniser。
<fieldType name="string_wildcards_letter" class="solr.TextField" positionIncrementGap="100">
<analyzer type="index">
<tokenizer class="solr.LetterTokenizerFactory"/>
<filter class="solr.LowerCaseFilterFactory"/>
<filter class="solr.EdgeNGramFilterFactory" minGramSize="1" maxGramSize="30"/>
</analyzer>
<analyzer type="query">
<tokenizer class="solr.StandardTokenizerFactory"/>
<filter class="solr.StandardFilterFactory"/>
<filter class="solr.LowerCaseFilterFactory"/>
</analyzer>
</fieldType>
尝试3.使用关键字标记符。
<fieldType name="string_wildcards_keyword" class="solr.TextField" positionIncrementGap="100">
<analyzer type="index">
<tokenizer class="solr.KeywordTokenizerFactory"/>
<filter class="solr.LowerCaseFilterFactory"/>
<filter class="solr.EdgeNGramFilterFactory" minGramSize="1" maxGramSize="30"/>
</analyzer>
<analyzer type="query">
<tokenizer class="solr.StandardTokenizerFactory"/>
<filter class="solr.StandardFilterFactory"/>
<filter class="solr.LowerCaseFilterFactory"/>
</analyzer>
</fieldType>
以上三次尝试均未成功。 Anybodies帮助将不胜感激。
SOLR查询示例
Field Name:
OriginalFilePath
My Input value is:
X:\Intake\1102\02.01.11\TX_DA26396_RushTopCompanies_Non-SERFF_01.28.11_PR\TX_P_1_01.28.11_NS\Dairyland County Mutual Insurance Company_01.28.11 03.pdf
My Query is:
OriginalFilePath:(x\\:\\\\intake\\\\1102\\\\02.01.11\\\\tx_da26396_rushtopcompanies_non\\-serff_01.28.11_pr\\\\tx_p_1_01.28.11_ns\\\\dairyland county mutual insurance company_01.28.11 03.p*)
最后astryks用于在该字段上使用LIKE操作。
如果我的查询形成有任何问题,请告诉我。
感谢。
答案 0 :(得分:0)
您应该使用通配符搜索。您可以在此处找到类似的问题:Wildcard search in Solr
答案 1 :(得分:0)
您可以查看PathHierarchyTokenizer,它将拆分路径并帮助您执行通配符查询。
您也可以使用RegularExpressionPatternTokenizer并在分隔符上生成标记。 您最终会得到可以与通配符查询一起使用的单个令牌(而不是文件路径层次结构)