From 05d75743b87e52509cdba7917db2e338de6af1bb Mon Sep 17 00:00:00 2001 From: xshadowlegendx Date: Thu, 16 Mar 2023 23:53:03 +0700 Subject: [PATCH] add solr `content_kh` field type with icu tokenizer for khmer content --- .../main/scala/docspell/ftssolr/Field.scala | 1 + .../scala/docspell/ftssolr/SolrSetup.scala | 23 ++++++++++++++++++- 2 files changed, 23 insertions(+), 1 deletion(-) diff --git a/modules/fts-solr/src/main/scala/docspell/ftssolr/Field.scala b/modules/fts-solr/src/main/scala/docspell/ftssolr/Field.scala index 2b960671..d331fc56 100644 --- a/modules/fts-solr/src/main/scala/docspell/ftssolr/Field.scala +++ b/modules/fts-solr/src/main/scala/docspell/ftssolr/Field.scala @@ -30,6 +30,7 @@ object Field { val content_de = contentField(Language.German) val content_en = contentField(Language.English) val content_fr = contentField(Language.French) + val content_kh = contentField(Language.Khmer) val itemName = Field("itemName") val itemNotes = Field("itemNotes") val folderId = Field("folder") diff --git a/modules/fts-solr/src/main/scala/docspell/ftssolr/SolrSetup.scala b/modules/fts-solr/src/main/scala/docspell/ftssolr/SolrSetup.scala index b76fac57..0e736bdf 100644 --- a/modules/fts-solr/src/main/scala/docspell/ftssolr/SolrSetup.scala +++ b/modules/fts-solr/src/main/scala/docspell/ftssolr/SolrSetup.scala @@ -172,7 +172,18 @@ object SolrSetup { "Add Ukrainian", addContentField(Language.Ukrainian) ), - SolrMigration.reIndexAll(31, "Re-Index after adding Estonian and Ukrainian") + SolrMigration.reIndexAll(31, "Re-Index after adding Estonian and Ukrainian"), + SolrMigration[F]( + 32, + "Add new field type for khmer content", + addFieldType(AddFieldType.textKhm) + ), + SolrMigration[F]( + 33, + "Add Khmer", + addContentField(Language.Khmer) + ), + SolrMigration.reIndexAll(34, "Re-Index after adding Khmer") ) def addFolderField: F[Unit] = @@ -347,6 +358,16 @@ object SolrSetup { ) ) + val textKhm = AddFieldType( + "text_kh", + "solr.TextField", + Analyzer( + Tokenizer("solr.ICUTokenizerFactory", Map.empty), + List( + ) + ) + ) + final case class Filter(`class`: String, attr: Map[String, String]) final case class Tokenizer(`class`: String, attr: Map[String, String]) final case class Analyzer(tokenizer: Tokenizer, filter: List[Filter])