Проблема с фидом Google Search Appliance

Я пытаюсь передать XML-файл в Google Search Appliance с некоторыми данными JSON в теге <![CDATA[ ]]>, но не получаю ожидаемого результата, поскольку GSA обрабатывает данные в формате HTML.

Ниже приведен файл, который я пытаюсь использовать в GSA.

<?xml version='1.0' encoding='UTF-8'?><!DOCTYPE gsafeed PUBLIC "-//Google//DTD GSA Feeds//EN" "gsafeed.dtd">
<gsafeed>
<header>
<datasource>samples_feed</datasource>
<feedtype>Full</feedtype>
</header>
<group>
<record url="some url" action="add" mimetype="application/json"> 
<content>
 <![CDATA[
{"1":"Samlpe","2":"JSON","3":false}]]> 
</content>
</record>
</group>
</gsafeed>

person Vishesh    schedule 17.10.2014    source источник


Ответы (2)


Благодаря способу форматирования содержимого записи вы, безусловно, сможете заставить GSA индексировать содержимое, но вы просто не сможете вернуть данные JSON как часть результатов. Для этого вам необходимо [закодировать и] встроить это в содержимое тега метаданных. Например,

    <content>
    <![CDATA[
    <head>
    <meta name="jsondata" content='{"1":"Samlpe","2":"JSON","3":false}'>
    </head><body></body>
    </html>
    ]]> 
    </content>

Затем, когда вы действительно выполняете поиск (для которого вы ожидаете, что указанная выше запись будет соответствовать), передайте "& getfields = jsondata" или "getfields = *" в строке запроса - с этим вы сможете увидеть свой результат, который включает данные json в элемент примерно так:

    <MT N="jsondata" V="{'your': 'json', 'data': 'here'}">
person Siddharth Patil    schedule 09.06.2015

GSA индексирует содержимое вашего CDATA как простой текст. Независимо от типа контента и mimetype весь контент, отправляемый в GSA, индексируется одинаково. Он конвертируется в HTML, а затем индексируется. Если вам нужен структурированный контент в ваших результатах, используйте метаданные, включенные в протокол фида, или создайте html-документ с html-метаданными.

person Michael Cizmar    schedule 29.11.2014