日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 >

solr 的 field, copyfield ,dynamic field

發布時間:2025/3/15 33 豆豆
生活随笔 收集整理的這篇文章主要介紹了 solr 的 field, copyfield ,dynamic field 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

Field:

? ?Field就是一個字段,定義一個Field很簡單:

?

[html]?view plaincopy
  • <field?name="price"?type="sfloat"?indexed="true"?stored="true"/>??

  • 基本上屬性也和FieldType類似,他的屬性會覆蓋掉FieldType的同名屬性。

    ?

    ?

    CopyField(本段內容直接從solr中文網copy而來):

    ? ? ??

    你可能想讓document的一些字段可以多次使用。solr 有一個字段復制機制,可以提交多個不同類型字段集中到一個字段。字段復制主要涉及兩個概念,source和destination,一個是要復制的字段,另一個是要復制到哪個字段,以下是個例子:
    1 <copyField source="cat" dest="text" maxChars="30000" />

    ?

    上例中,如果text字段有數據的話,cat字段的內容將被添加到text字段中。maxChars 參數,一個int類型參數,用于限制復制的字符數。

    source和destination都支持通配符。以下是一個將所有以 _t 結尾的字段全部復制到text字段中。
    1 <copyField source="*_t" dest="text" maxChars="25000" />
    其實說的簡單一點,比如現在你要查詢包涵"Java"的博客, 那么你肯定要查內容,標題是否包含Java,但是solr不能像SQL那樣,where tittle like '%Java%' ?or ?content like '%Java%'. ? 這個時候copyField就派上用場了, 定義一個新字段,將title和content 復制到這個新字段,索引的時候,直接從這個新字段查詢,這樣就達到目地了。 ?這便是copyField的典型應用場景?。注意:如果dest由多個source構成,就需要將其指定為multiValued。 在網上找了一個例子: [html]?view plaincopy
  • <schema?name="eshequn.post.db_post.0"?version="1.1"????
  • ????xmlns:xi="http://www.w3.org/2001/XInclude">????
  • ?????<fields>????
  • ????????<!--?for?title?-->????
  • ????????<field?name="t"?type="text"?indexed="true"?stored="false"?/>????
  • ????????<!--?for?abstract?-->????
  • ????????<field?name="a"?type="text"?indexed="true"?stored="false"?/>????
  • ????????<!--?for?title?and?abstract?-->????
  • ????????<field?name="ta"?type="text"?indexed="true"?stored="false"?multiValued="true"/>????
  • ????</fields>????
  • ????<copyField?source="t"?dest="ta"?/>????
  • ????<copyField?source="a"?dest="ta"?/>????
  • </schema>????


  • DynamicField: 動態字段(Dynamic fields)允許 solr 索引沒有在 schema 中明確定義的字段。這個在忘記定義一些字段時很有用。動態字段可以讓系統更靈活,通用性更強。 動態字段和常規字段類似,除了它名字中包含一個通配符外,在索引文檔時,一個字段如果在常規字段中沒有匹配時,將到動態字段中匹配。 假設schema中定義了一個叫*_i的動態動態字段,如果要索引一個叫 cost_i 的字段,但是 schema 中不存在 cost_i 的字段,這樣 cost_i ?將被索引到 *_i 字段中。 動態字段也是定義在 schema.xml 文件中,和其他字段一樣,它也有個名詞,字段類型,和屬性。
    1 <dynamicField name="*_i" type="sint" indexed="true" stored="true"/>

    建議在 schema.xml 定義一些基本的動態字段,以備擴展之用。

    ?

    ?

    原文鏈接:http://blog.csdn.net/zl3450341/article/details/12849341

    轉載于:https://www.cnblogs.com/earendil/p/6627682.html

    總結

    以上是生活随笔為你收集整理的solr 的 field, copyfield ,dynamic field的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。