1

我想上传 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>

尝试2。使用字母标记器。

  <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>

以上三个尝试均未成功。任何人的帮助将不胜感激。

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*)

最后一个 astrieks 用于在该字段上使用 LIKE 操作。

如果我的查询格式有任何问题,请告诉我。

谢谢。

4

1 回答 1

0

您可以检查PathHierarchyTokenizer,它将拆分路径并帮助您执行通配符查询。

您也可以使用RegularExpressionPatternTokenizer并在分隔符上生成标记。您最终会得到可以与通配符查询一起使用的单个令牌(而不是文件路径层次结构)

于 2013-01-02T09:50:15.470 回答