ご挨拶 私は Rails swifttype.comに Swiftype gem を使用 しています。ドキュメントをサイトにアップロードし、私のサイトでオートコンプリートできるようになっています。
私が抱えている問題は、2 つの異なるドキュメント タイプを検索していて、これをそのまま結果に表示したいということです。
カテゴリと会社の 2 種類のドキュメントがあります。
現在、これが表示されています:
Search:
Category
Category
Company
Category
Company
こうなりたいところ
Search:
Category
Category
Category
---------
Company
Company
または、このようにさらに良い:
Search:
Category | Company
Category | Company
Category | Company
デフォルトの Swiftype オートコンプリート JS を使用しています。
ページ上の JS は次のようになります。
$(function() {
var customResultRenderFunction = function(ctx, data) {
var withSections = [],
noSections = [];
$.each(data, function(docType, results) {
$.each(results, function(idx, result) {
if (result.sections && result.sections.length > 15) {
withSections.push(result);
} else {
noSections.push(result);
}
});
});
var withSectionsList = $('<ul class="with_sections"></ul>'),
noSectionsList = $('<ul class="no_sections"></ul>');
$.each(withSections, function(idx, item) {
ctx.registerResult($('<li class="result"><p>' + item['name'] + '</p></li>').appendTo(withSectionsList), item);
});
$.each(noSections, function(idx, item) {
ctx.registerResult($('<li class="result"><p>' + item['name'] + '</p></li>').appendTo(noSectionsList), item);
});
if (withSections.length > 0) {
withSectionsList.appendTo(ctx.list);
}
if (noSections.length > 0) {
noSectionsList.appendTo(ctx.list);
}
};
$('#st-search-input').swiftype({
engineKey: '<%= ENV['SWIFTYPE_ENGINE_KEY'] %>',
resultRenderFunction: customResultRenderFunction,
suggestionListType: 'div',
resultListSelector: '.result',
fetchFields: {page: ['url', 'name']}
});
});
</script>
ドキュメントの種類を区別するために、これをより適切に表示するにはどうすればよいですか?