Solr 6.5.1按顺序搜索第一个完整匹配第二个从左到右匹配

Solr 6.5.1按顺序搜索第一个完整匹配第二个从左到右匹配,solr,lucene,Solr,Lucene,我使用lucene进行索引,使用solr进行搜索并满足以下要求 示例:“测试五” 最高优先级-同时具有“Test”和“Five”的单词 下一步-只剩下大多数单词“Test”的单词 下一个–列表中的下一个单词-“五”(从左到右)等 请找到我的模式 <field name="name" type="text_general" indexed="true" stored="true"/> <field name="acSearch" type="searchFieldType" re

我使用lucene进行索引,使用solr进行搜索并满足以下要求

示例:“测试五”

  • 最高优先级-同时具有“Test”和“Five”的单词
  • 下一步-只剩下大多数单词“Test”的单词
  • 下一个–列表中的下一个单词-“五”(从左到右)等
  • 请找到我的模式

    <field name="name" type="text_general" indexed="true" stored="true"/>
    <field name="acSearch" type="searchFieldType" required="false" indexed="true" stored="false" multiValued="true" />
    <copyField source="name" dest="acSearch" />
    <fieldType name="searchFieldType" class="solr.TextField" positionIncrementGap="100">
            <analyzer type="index">
                <tokenizer class="solr.PatternTokenizerFactory" pattern="[,]+" />
                <filter class="solr.LowerCaseFilterFactory" />
                <filter class="solr.EdgeNGramFilterFactory" minGramSize="1" maxGramSize="25" />
            </analyzer>
            <analyzer type="query">
                <tokenizer class="solr.PatternTokenizerFactory" pattern="[,]+" />
                <filter class="solr.LowerCaseFilterFactory" />
    
            </analyzer></fieldType>
    
    
    
    solrconfig.xml

     <requestHandler name="/select" class="solr.SearchHandler">
     <lst name="defaults">
      <str name="wt">json</str>
      <str name="indent">true</str>
      <str name="fl">name</str>
      <str name="rows">200</str>
      <str name="df">dySearch</str>
      <str name="sort">score desc</str>
    </lst>
    <arr name="components">
      <str>query</str>
    </arr>
    
    
    json
    真的
    名称
    200
    研究困难
    分数描述
    查询
    

    如果我搜索的话,我不会被适当地释放

    1.测试5响应测试5先到下一个不是从左到右数据以任何顺序出现

  • 如果我搜索五个与测试相关的数据,它们将首先出现

  • 请您帮助……

    您可以在构建查询字符串时对每个术语进行不同的增强:

     q=Test^10 Five^3 last^1
    

    有了这个,你就不必去搞乱ngram等,只需使用一些标准分析仪

    请找人帮忙解决上述问题