簡體   English   中英

Apache Solr中的查詢使用構面時某些詞不顯示

[英]Some Words not show when query in apache solr use facet

我在solr中使用http://localhost:8983/solr/matching/select?facet.field=content&facet=on&q=\\*:\\* 並非所有單詞都沒有顯示。 這是我的關鍵和價值

{
    "id":"1",
    "content":["Jakarta - KM Sinar Bangun tenggelam di Danau Toba, Sumut. Menteri Pariwisata Arief Yahya berharap, audit transportasi dan keamanan di sana diperketat.\n\n\"Pertama-tama kita berbelasungkawa atas KM Sinar Baru yang tenggelam di Danau Toba. Saya juga ikut memonitor dan apa yang sudah dilakukan rekan-rekan Basarnas sudah bagus,\" katanya di Balairung Soesilo Soedarman, Gedung Sapta Pesona, Jakarta, Kamis (21/6/2018) setelah acara Halal Bi Halal Kementerian Pariwisata.\n\nKM Sinar Bangun tenggelam di Danau Toba, Senin (18/6) sekitar pukul 17.30 WIB. Kapal tenggelam saat berlayar dari Pelabuhan Simanindo, Kabupaten Samosir, menuju Pelabuhan Tigaras, Kabupaten Simalungun.\n\nKorban hilang penumpang KM Sinar Bangun yang tenggelam berjumlah 186. Sebanyak 94 orang teridentifikasi, sedangkan 92 orang belum diketahui identitasnya.\n\n\"Kabarnya kapal itu over capacity atau tidak memenuhi spesifik teknis. Saya setuju. Ke depannya diaudit kepada semua kapal yang berlayar di Danau Toba,\" tegas Arief.\n\nDanau Toba merupakan salah satu 10 Destinasi Prioritas atau 10 Bali Baru. Maka itu, poin keamanan, keselamatan dan pelayanannya harus terus ditingkatkan. Agar tidak terulang lagi musibah Danau Toba.\n\n\"Kita harapkan akan lebih ketat dan selektif terutama saat hari-hari besar di sana. Nanti ketemu lagi di Natal dan Tahun Baru harus dipersiapkan lebih bagus,\" tutupnya. (aff/fay)\n"],
    "_version_":1603877168829431808},
  {
    "id":"2",
    "content":["Jakarta - KM Sinar Bangun tenggelam di Danau Toba, Sumut. Menteri Pariwisata Arief Yahya berharap, audit transportasi dan keamanan di sana diperketat.\n\n\"Pertama-tama kita berbelasungkawa atas KM Sinar Baru yang tenggelam di Danau Toba. Saya juga ikut memonitor dan apa yang sudah dilakukan rekan-rekan Basarnas sudah bagus,\" katanya di Balairung Soesilo Soedarman, Gedung Sapta Pesona, Jakarta, Kamis (21/6/2018) setelah acara Halal Bi Halal Kementerian Pariwisata.\n\nKM Sinar Bangun tenggelam di Danau Toba, Senin (18/6) sekitar pukul 17.30 WIB. Kapal tenggelam saat berlayar dari Pelabuhan Simanindo, Kabupaten Samosir, menuju Pelabuhan Tigaras, Kabupaten Simalungun.\n\nKorban hilang penumpang KM Sinar Bangun yang tenggelam berjumlah 186. Sebanyak 94 orang teridentifikasi, sedangkan 92 orang belum diketahui identitasnya.\n\n\"Kabarnya kapal itu over capacity atau tidak memenuhi spesifik teknis. Saya setuju. Ke depannya diaudit kepada semua kapal yang berlayar di Danau Toba,\" tegas Arief.\n\nDanau Toba merupakan salah satu 10 Destinasi Prioritas atau 10 Bali Baru. Maka itu, poin keamanan, keselamatan dan pelayanannya harus terus ditingkatkan. Agar tidak terulang lagi musibah Danau Toba.\n\n\"Kita harapkan akan lebih ketat dan selektif terutama saat hari-hari besar di sana. Nanti ketemu lagi di Natal dan Tahun Baru harus dipersiapkan lebih bagus,\" tutupnya. (aff/fay)\n"],
    "_version_":1603877168887103488}

查詢后的結果是:

"facet_counts":{
"facet_queries":{},
"facet_fields":{
  "content":[
    "10",2,
    "17",2,
    "18",2,
    "186",2,
    "2018",2,
    "21",2,
    "30",2,
    "6",2,
    "92",2,
    "94",2,
    "acara",2,
    "aff",2,
    "agar",2,
    "akan",2,
    "apa",2,
    "arief",2,
    "atas",2,
    "atau",2,
    "audit",2,
    "bagus",2,
    "balairung",2,
    "bali",2,
    "bangun",2,
    "baru",2,
    "basarnas",2,
    "belum",2,
    "berbelasungkawa",2,
    "berharap",2,
    "berjumlah",2,
    "berlayar",2,
    "besar",2,
    "bi",2,
    "capacity",2,
    "dan",2,
    "danau",2,
    "dari",2,
    "depannya",2,
    "destinasi",2,
    "di",2,
    "diaudit",2,
    "diketahui",2,
    "dilakukan",2,
    "diperketat",2,
    "dipersiapkan",2,
    "ditingkatkan",2,
    "fay",2,
    "gedung",2,
    "halal",2,
    "harapkan",2,
    "hari",2,
    "harus",2,
    "hilang",2,
    "identitasnya",2,
    "ikut",2,
    "itu",2,
    "jakarta",2,
    "juga",2,
    "kabarnya",2,
    "kabupaten",2,
    "kamis",2,
    "kapal",2,
    "katanya",2,
    "ke",2,
    "keamanan",2,
    "kementerian",2,
    "kepada",2,
    "keselamatan",2,
    "ketat",2,
    "ketemu",2,
    "kita",2,
    "km",2,
    "korban",2,
    "lagi",2,
    "lebih",2,
    "maka",2,
    "memenuhi",2,
    "memonitor",2,
    "menteri",2,
    "menuju",2,
    "merupakan",2,
    "musibah",2,
    "nanti",2,
    "natal",2,
    "orang",2,
    "over",2,
    "pariwisata",2,
    "pelabuhan",2,
    "pelayanannya",2,
    "penumpang",2,
    "pertama",2,
    "pesona",2,
    "poin",2,
    "prioritas",2,
    "pukul",2,
    "rekan",2,
    "saat",2,
    "salah",2,
    "samosir",2,
    "sana",2,
    "sapta",2]},
"facet_ranges":{},
"facet_intervals":{},
"facet_heatmaps":{}}

結果“ Sinar”,“ tenggelam”,“ toba”和某些單詞未顯示。 這是我的現場配置

   <fieldType name="edgytext" class="solr.TextField" positionIncrementGap="100">
 <analyzer type="index">
   <tokenizer class="solr.KeywordTokenizerFactory"/>
   <filter class="solr.LowerCaseFilterFactory"/>
   <filter class="solr.WordDelimiterFilterFactory" />
 </analyzer>
 <analyzer type="query">
   <tokenizer class="solr.KeywordTokenizerFactory"/>
   <filter class="solr.LowerCaseFilterFactory"/>
 </analyzer>
 </fieldType> 

那么我的查詢或Solr字段配置怎么了?

嗨,我的建議是用下面的定義替換您的字段類型edgytext。

<fieldType name="edgytext" class="solr.TextField" positionIncrementGap="100" 
multiValued="true">
<analyzer type="index">
  <tokenizer class="solr.StandardTokenizerFactory"/>
  <filter class="solr.LowerCaseFilterFactory"/>
</analyzer>
<analyzer type="query">
  <tokenizer class="solr.StandardTokenizerFactory"/>
  <filter class="solr.LowerCaseFilterFactory"/>
</analyzer>
</fieldType>

如果您希望所有單詞都包含在構面中,則需要使用StandardTokenizerFactory。

什么是solr.StandardTokenizerFactory?

它標記空白,並去除字符。

Example :
http://google.com/i+love+birds

會生成6個令牌(用逗號分隔)-

 http,google.com,I,love,birds

什么是KeywordTokenizerFactory?

關鍵字標記器根本不分割輸入。 對該字符串不執行任何處理,並且整個字符串被視為單個實體。 這實際上並沒有進行任何標記化。 它返回原始文本作為一個術語。

主要用於排序或構面需求,在過濾多個單詞並進行排序時,您要匹配精確的構面,因為排序不適用於標記化字段。

您的構面清單截斷為100-您缺少的所有單詞都在該截斷點之后。 問題不是值沒有被索引,而是您沒有檢索它們。 默認情況下, facet.limit參數設置為100將其設置為-1以返回字段的所有術語及其相關計數。

&facet=true&facet.field=content&facet.limit=-1

暫無
暫無

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

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