Как загрузить документ в формате xhtml как текст и выполнить поиск по ключевому слову в marklogic

Я загрузил файлы XHTML в marklogic. Но нужно выполнить поиск по атрибутам, элементам и тексту. Поэтому мне нужно получить / загрузить документ в виде текста и выполнить поиск по документу.

Ниже приведен файл XHTML.

            <?xml version="1.0" encoding="UTF-8"?>
    <html xmlns="http://www.w3.org/1999/xhtml">
        <meta>
            </meta>
        <body class="Default">

        </body>
    </html>

Using below code I am ble to save text file but it will aloow to save (>0.2KB )small size file. I need to save upto 1 to 50MB files in marklogic DB.

Using below code I am able to save file as text but big file not able to save.
 ContentCreateOptions createOptions = ContentCreateOptions.newTextInstance();

 Content content = ContentFactory.newContent("/"+uID,filetext, createOptions);

 mlSession.insertContent(content);

1 ответ

Решение

Все еще не совсем уверен насчет варианта использования этого, но здесь вы идете:

Если вы действительно хотите осуществлять поиск по полному тексту по именам элементов, атрибутам и тексту без какой-либо дискриминации, лучше всего вставить его как текст во время загрузки. Например, с чем-то вроде:

xdmp:document-insert(
    "/my.xhtml",
    text {
        xdmp:quote(
            <html xmlns="http://www.w3.org/1999/xhtml">
                ...
            </html>
        )
    }
)

Или же:

xdmp:document-load(
    "/server/path/to/my.xhtml",
    <options xmlns="xdmp:document-load">
        <format>text</format>
    </options>
)

После этого вы можете просто сделать:

cts:search(collection(), "mytagorattrorterm")

В качестве альтернативы вы можете использовать xdmp:quote перед выполнением cts: Содержит или FN: Содержит, но это очень плохо масштабируется, так что лучше всего делать это только на одном или нескольких документах одновременно.

НТН!

Другие вопросы по тегам