我正在使用NGramFilterFactory。我的架构如下SOLR中的精确匹配
<fieldType name="c_text" class="solr.TextField">
<analyzer type="index">
<tokenizer class="solr.WhitespaceTokenizerFactory"/>
<filter class="solr.LowerCaseFilterFactory"/>
<filter class="solr.NGramFilterFactory" minGramSize="1" maxGramSize="255"/>
</analyzer>
<analyzer type="query">
<tokenizer class="solr.WhitespaceTokenizerFactory"/>
<filter class="solr.LowerCaseFilterFactory"/>
</analyzer>
</fieldType>
<field name="parentId" type="string" indexed="true" stored="true"/>
<field name="data_s" type="c_text" indexed="true" stored="true"/>
<field name="email" type="c_text" indexed="true" stored="true"/>
<field name="receivedDate" type="tdate" indexed="true" stored="true"/>
给我要让exatc搜索短语,如“Hello World”的上data_s场,但无法做到这一点。如果我给
data_s:hello world
它将返回所有有hello或world或两者的记录。如果我给
data_s:“hello world”
它不会返回任何内容。
我该如何对此进行精确的词组搜索。 我还需要搜索部分文本,如“你好”,这就是为什么我使用NGramFilterFactory。
所以我的要求是对精确的短语和部分文本进行搜索。
一个解决方案,我发现是使用复制申请,并就这一领域和部分文本搜索的原始字段精确搜索。 –
是的,那是正确的做法。 – Evan
你如何做出确切的搜索? –