0

関数がカウント付きのファセットを返すハイパーグラフベースのデータベースでファセット検索を実装するユーザー定義関数を作成しようとしていました。問題は、検索するフィールドのセットを渡す必要があることです。その方法がわかりません。関数を見て、私を助けてください。{'node_type', 'node_title', 'title'} などのような search_fields を渡したい.

CREATE OR REPLACE FUNCTION facets(
    IN keyword text, IN search_fields text, IN relation_name text, IN node_type text, IN group_by text, 
    OUT facet text, OUT count integer
   )

    RETURNS SETOF record AS

    $BODY$

ありがとう

4

1 に答える 1

1

あなたが何をしようとしているのかわからないので、これをスターターとして示しています。

配列で渡された列のセットを返すには:

create or replace function facets(
    columns text[]
) returns setof record language plpgsql as $body$
begin
    return query execute format($$
        select %1$I, %2$I from t
    $$, columns[1], columns[2]);
end; $body$;

それを取得するには、戻り値の型を宣言する必要があります。

select * from facets(array['a', 'b']) s(a text, b text);
于 2013-04-24T13:20:40.637 に答える