首页 > 解决方案 > 使用 lucene 进行全文搜索

问题描述


我最近一直在用 Jackrabbit Oak 开发一个 Java JCR 项目。
我正在尝试通过 lucene 索引实现全文搜索功能,但我遇到了问题。

这是我创建的 lucene 索引:

/oak:index/lucene
  - jcr:primaryType = "oak:QueryIndexDefinition"
  - type = "lucene"
  - compatVersion = 2
  - async = "async"
  + indexRules
    - jcr:primaryType = "nt:unstructured"
    + nt:base
      + properties
        - jcr:primaryType = "nt:unstructured"
        + jcr:content
          - name = "jcr:content"
          - type = "String"
          - propertyIndex = false
          - analyzed = true

这是我要搜索的节点

Node[NodeDelegate{tree=/home/test.txt: {
    jcr:primaryType = nt:unstructured,
    jcr:uuid = 1aa8c2a2-c06c-49f0-892d-96d40d78921b,
    jcr:versionHistory = f1c33e1b-2d97-4e12-8fc0-cdb6881d08b8,
    jcr:predecessors = [],
    jcr:isCheckedOut = false,
    jcr:mixinTypes = [mix:versionable],
    jcr:baseVersion = 26d68547-e60a-44e5-a8e6-1aa04d1012d1,
    jcr:content = {
        jcr:primaryType = nt:resource,
        jcr:uuid = fc2b91a3-9d6e-41a2-bc45-62945081c2db,
        jcr:lastModifiedBy = admin,
        jcr:data = {9 bytes},
        jcr:mimeType = log, 
        cr:lastModified = 2021-03-09T14:33:41.933+01:00
    }
}}]

文件 test.txt 的内容(jcr:data)为:

test test

这是我用于搜索的查询

SELECT * FROM [nt:base] AS node WHERE CONTAINS([nt:base], 'test')

但是,当我执行它时,我没有得到任何结果。
为什么?

标签: javalucenefull-text-searchjcrjackrabbit-oak

解决方案


推荐阅读