我正在使用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
你如何做出確切的搜索? –