簡體   English   中英

Solr直接匹配搜索

[英]Solr direct match search

我正在嘗試測試Solr中的不同功能,我想創建一個只返回直接匹配的基本文本搜索器。 我有簡單的文件包含短語:

[{
    "id": 1,
    "name": "one blue car"
},
{
    "id": 2,
    "name": "two blue cars"
}]

我的架構包括:

<field name="id" type="int" indexed="true" stored="true"/>
<field name="name" type="string" indexed="true" stored="true"/>
<field name="nameExact" type="text_exact" indexed="true" stored="false"/>
<field name="_version_" type="float" indexed="false" stored="false"/>

<copyField source="name" dest="nameExact"/>

<fieldType name="text_exact" class="solr.TextField" positionIncrementGap="100" >
    <analyzer>
        <tokenizer class="solr.KeywordTokenizerFactory"/>
        <filter class="solr.LowerCaseFilterFactory"/>
    </analyzer>
</fieldType>

我的solrconfig包括:

<requestHandler name="/select" class="solr.SearchHandler">
    <lst name="defaults">
        <str name="echoParams">explicit</str>
        <int name="rows">10</int>
        <str name="df">name</str>
    </lst>
</requestHandler>

我想搜索“一輛藍色汽車”並收到id = 1的條目
這是實現我想要的正確設置嗎?

您需要為字符串定義字段類型。 (我希望你已經定義了這個)

<fieldType name="string" class="solr.StrField" sortMissingLast="true" />

提交的定義是正確的。

<field name="name" type="string" indexed="true" stored="true"/>

您可以使用簡單的查詢來搜索相同的內容

q=name:"one blue car"&rows=100&wt=json&indent=true

您不需要定義新的字段nameExact和單獨的fieldType來實現相同的目的。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM