1

我正在尝试对我的 Modeshape 5.3.0.Final 存储库执行全文搜索。查询很简单:

Query query = queryManager.createQuery("SELECT * FROM [nt:resource] as data WHERE ISDESCENDANTNODE('/somenode') AND CONTAINS(data.*,'*" + text + "*')

看起来它适用于二进制存储文件(即 pdf、doc、docx 等),但它与 txt 文件或任何文本格式文件不匹配。

这是我的存储库配置

{
  "name": "Persisted-Repository",
  "textExtraction": {
    "extractors": {
      "tikaExtractor": {
        "name": "General content-based extractor",
        "classname": "tika"
      }
    }
  },
  "workspaces": {
    "predefined": [
      "otherWorkspace"
    ],
    "default": "default",
    "allowCreation": true
  },
  "security": {
    "anonymous": {
      "roles": [
        "readonly",
        "readwrite",
        "admin"
      ],
      "useOnFailedLogin": false
    }
  },
  "storage": {
    "persistence": {
      "type": "file",
      "path": "/var/content/storage"
    },
    "binaryStorage": {
      "type": "file",
      "directory": "/var/content/binaries",
      "minimumBinarySizeInBytes": 999,
      "mimeTypeDetection": "content"
    }
  },
  "indexProviders": {
    "lucene": {
      "classname": "lucene",
      "directory": "/var/content/indexes"
    }
  },
  "indexes": {
    "textFromFiles": {
      "kind": "text",
      "provider": "lucene",
      "nodeType": "nt:resource",
      "columns": "jcr:data(BINARY)"
    }
  }
}

目前,我正在通过执行另一次搜索配置的文本文件扩展名并手动使用 Tika(可能因为这里不需要 Tika 已经是文本......)来提取文本并搜索事件,来解决这个问题。

有人知道这是预期的行为还是我做错了什么?

干杯!

4

0 回答 0