X-Git-Url: http://git.indexdata.com/?a=blobdiff_plain;f=include%2Fidzebra%2Fsnippet.h;h=aeb95bd8651f58ab27e5b435cd3e8007e90293b6;hb=4f71537a478fc551989245f0dde38997714eedc1;hp=6e527d009876332e5a57f346af69f348faaf7023;hpb=ecb3935e78cd9bcfdebafdee0834cfb1060d7b5e;p=idzebra-moved-to-github.git diff --git a/include/idzebra/snippet.h b/include/idzebra/snippet.h index 6e527d0..aeb95bd 100644 --- a/include/idzebra/snippet.h +++ b/include/idzebra/snippet.h @@ -1,8 +1,5 @@ -/* $Id: snippet.h,v 1.5 2006-05-10 08:13:20 adam Exp $ - Copyright (C) 1995-2005 - Index Data ApS - -This file is part of the Zebra server. +/* This file is part of the Zebra server. + Copyright (C) 1994-2011 Index Data Zebra is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free @@ -15,9 +12,9 @@ FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License -along with Zebra; see the file LICENSE.zebra. If not, write to the -Free Software Foundation, 59 Temple Place - Suite 330, Boston, MA -02111-1307, USA. +along with this program; if not, write to the Free Software +Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA + */ #ifndef IDZEBRA_SNIPPET_H @@ -28,47 +25,70 @@ Free Software Foundation, 59 Temple Place - Suite 330, Boston, MA YAZ_BEGIN_CDECL struct zebra_snippet_word { - zint seqno; - int ord; - char *term; - int match; + zint seqno; /**< sequence number */ + int ord; /**< ordinal, i.e. database,field,type */ + char *term; /**< term itself */ + int match; /**< both part and real match */ + int mark; /**< part of snippet */ + int ws; /**< white space flag (not indexed material) */ struct zebra_snippet_word *next; + struct zebra_snippet_word *prev; }; typedef struct zebra_snippets zebra_snippets; typedef struct zebra_snippet_word zebra_snippet_word; YAZ_EXPORT -zebra_snippets *zebra_snippets_create(); +zebra_snippets *zebra_snippets_create(void); YAZ_EXPORT void zebra_snippets_destroy(zebra_snippets *l); YAZ_EXPORT void zebra_snippets_append(zebra_snippets *l, - zint seqno, int ord, const char *term); + zint seqno, int ws, int ord, const char *term); + +YAZ_EXPORT +void zebra_snippets_appendn(zebra_snippets *l, + zint seqno, int ws, int ord, + const char *term, size_t term_len); YAZ_EXPORT void zebra_snippets_append_match(zebra_snippets *l, - zint seqno, int ord, const char *term, + zint seqno, int ws, int ord, + const char *term, size_t term_len, int match); YAZ_EXPORT zebra_snippet_word *zebra_snippets_list(zebra_snippets *l); YAZ_EXPORT -void zebra_snippets_log(zebra_snippets *l, int log_level); +const zebra_snippet_word *zebra_snippets_constlist(const zebra_snippets *l); + +YAZ_EXPORT +void zebra_snippets_log(const zebra_snippets *l, int log_level, int all); YAZ_EXPORT -zebra_snippets *zebra_snippets_window(zebra_snippets *doc, zebra_snippets *hit, +zebra_snippets *zebra_snippets_window(const zebra_snippets *doc, + const zebra_snippets *hit, int window_size); +YAZ_EXPORT +void zebra_snippets_ring(zebra_snippets *doc, const zebra_snippets *hit, + int before, int after); + + +YAZ_EXPORT +const struct zebra_snippet_word *zebra_snippets_lookup( + const zebra_snippets *doc, const zebra_snippets *hit); + YAZ_END_CDECL #endif /* * Local variables: * c-basic-offset: 4 + * c-file-style: "Stroustrup" * indent-tabs-mode: nil * End: * vim: shiftwidth=4 tabstop=8 expandtab