You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@lucy.apache.org by ma...@apache.org on 2011/05/02 01:50:38 UTC
[lucy-commits] svn commit: r1098445 [5/23] - in /incubator/lucy/trunk: charmonizer/
charmonizer/src/Charmonizer/ charmonizer/src/Charmonizer/Core/
charmonizer/src/Charmonizer/Probe/ charmonizer/src/Charmonizer/Test/
clownfish/lib/ clownfish/lib/Clownfish/Binding/ clo...
Modified: incubator/lucy/trunk/core/Lucy/Highlight/HeatMap.c
URL: http://svn.apache.org/viewvc/incubator/lucy/trunk/core/Lucy/Highlight/HeatMap.c?rev=1098445&r1=1098444&r2=1098445&view=diff
==============================================================================
--- incubator/lucy/trunk/core/Lucy/Highlight/HeatMap.c (original)
+++ incubator/lucy/trunk/core/Lucy/Highlight/HeatMap.c Sun May 1 23:50:24 2011
@@ -23,15 +23,13 @@
#include "Lucy/Util/SortUtils.h"
HeatMap*
-HeatMap_new(VArray *spans, uint32_t window)
-{
+HeatMap_new(VArray *spans, uint32_t window) {
HeatMap *self = (HeatMap*)VTable_Make_Obj(HEATMAP);
return HeatMap_init(self, spans, window);
}
HeatMap*
-HeatMap_init(HeatMap *self, VArray *spans, uint32_t window)
-{
+HeatMap_init(HeatMap *self, VArray *spans, uint32_t window) {
VArray *spans_copy = VA_Shallow_Copy(spans);
VArray *spans_plus_boosts;
@@ -51,15 +49,13 @@ HeatMap_init(HeatMap *self, VArray *span
}
void
-HeatMap_destroy(HeatMap *self)
-{
+HeatMap_destroy(HeatMap *self) {
DECREF(self->spans);
SUPER_DESTROY(self, HEATMAP);
}
static int
-S_compare_i32(void *context, const void *va, const void *vb)
-{
+S_compare_i32(void *context, const void *va, const void *vb) {
UNUSED_VAR(context);
return *(int32_t*)va - *(int32_t*)vb;
}
@@ -67,8 +63,7 @@ S_compare_i32(void *context, const void
// Create all the spans needed by HeatMap_Flatten_Spans, based on the source
// offsets and lengths... but leave the scores at 0.
static VArray*
-S_flattened_but_empty_spans(VArray *spans)
-{
+S_flattened_but_empty_spans(VArray *spans) {
const uint32_t num_spans = VA_Get_Size(spans);
int32_t *bounds = (int32_t*)MALLOCATE((num_spans * 2) * sizeof(int32_t));
@@ -76,10 +71,10 @@ S_flattened_but_empty_spans(VArray *span
for (uint32_t i = 0; i < num_spans; i++) {
Span *span = (Span*)VA_Fetch(spans, i);
bounds[i] = span->offset;
- bounds[i + num_spans] = span->offset + span->length;
+ bounds[i + num_spans] = span->offset + span->length;
}
- Sort_quicksort(bounds, num_spans * 2, sizeof(uint32_t),
- S_compare_i32, NULL);
+ Sort_quicksort(bounds, num_spans * 2, sizeof(uint32_t),
+ S_compare_i32, NULL);
uint32_t num_bounds = 0;
int32_t last = I32_MAX;
for (uint32_t i = 0; i < num_spans * 2; i++) {
@@ -102,8 +97,7 @@ S_flattened_but_empty_spans(VArray *span
}
VArray*
-HeatMap_flatten_spans(HeatMap *self, VArray *spans)
-{
+HeatMap_flatten_spans(HeatMap *self, VArray *spans) {
const uint32_t num_spans = VA_Get_Size(spans);
UNUSED_VAR(self);
@@ -119,12 +113,12 @@ HeatMap_flatten_spans(HeatMap *self, VAr
uint32_t dest_tick = 0;
for (uint32_t i = 0; i < num_spans; i++) {
Span *source_span = (Span*)VA_Fetch(spans, i);
- int32_t source_span_end
+ int32_t source_span_end
= source_span->offset + source_span->length;
// Get the location of the flattened span that shares the source
// span's offset.
- for ( ; dest_tick < num_raw_flattened; dest_tick++) {
+ for (; dest_tick < num_raw_flattened; dest_tick++) {
Span *dest_span = (Span*)VA_Fetch(flattened, dest_tick);
if (dest_span->offset == source_span->offset) {
break;
@@ -158,8 +152,7 @@ HeatMap_flatten_spans(HeatMap *self, VAr
}
float
-HeatMap_calc_proximity_boost(HeatMap *self, Span *span1, Span *span2)
-{
+HeatMap_calc_proximity_boost(HeatMap *self, Span *span1, Span *span2) {
int32_t comparison = Span_Compare_To(span1, (Obj*)span2);
Span *lower = comparison <= 0 ? span1 : span2;
Span *upper = comparison >= 0 ? span1 : span2;
@@ -175,33 +168,32 @@ HeatMap_calc_proximity_boost(HeatMap *se
else {
float factor = (self->window - distance) / (float)self->window;
// Damp boost with greater distance.
- factor *= factor;
+ factor *= factor;
return factor * (lower->weight + upper->weight);
}
}
VArray*
-HeatMap_generate_proximity_boosts(HeatMap *self, VArray *spans)
-{
+HeatMap_generate_proximity_boosts(HeatMap *self, VArray *spans) {
VArray *boosts = VA_new(0);
const uint32_t num_spans = VA_Get_Size(spans);
if (num_spans > 1) {
- for (uint32_t i = 0, max = num_spans - 1; i < max; i++ ) {
+ for (uint32_t i = 0, max = num_spans - 1; i < max; i++) {
Span *span1 = (Span*)VA_Fetch(spans, i);
for (uint32_t j = i + 1; j <= max; j++) {
Span *span2 = (Span*)VA_Fetch(spans, j);
- float prox_score
+ float prox_score
= HeatMap_Calc_Proximity_Boost(self, span1, span2);
if (prox_score == 0) {
break;
}
else {
int32_t length = (span2->offset - span1->offset)
- + span2->length;
- VA_Push(boosts,
- (Obj*)Span_new(span1->offset, length, prox_score));
+ + span2->length;
+ VA_Push(boosts,
+ (Obj*)Span_new(span1->offset, length, prox_score));
}
}
}
@@ -211,6 +203,8 @@ HeatMap_generate_proximity_boosts(HeatMa
}
VArray*
-HeatMap_get_spans(HeatMap *self) { return self->spans; }
+HeatMap_get_spans(HeatMap *self) {
+ return self->spans;
+}
Modified: incubator/lucy/trunk/core/Lucy/Highlight/Highlighter.c
URL: http://svn.apache.org/viewvc/incubator/lucy/trunk/core/Lucy/Highlight/Highlighter.c?rev=1098445&r1=1098444&r2=1098445&view=diff
==============================================================================
--- incubator/lucy/trunk/core/Lucy/Highlight/Highlighter.c (original)
+++ incubator/lucy/trunk/core/Lucy/Highlight/Highlighter.c Sun May 1 23:50:24 2011
@@ -46,16 +46,14 @@ S_encode_entities(CharBuf *text, CharBuf
Highlighter*
Highlighter_new(Searcher *searcher, Obj *query, const CharBuf *field,
- uint32_t excerpt_length)
-{
+ uint32_t excerpt_length) {
Highlighter *self = (Highlighter*)VTable_Make_Obj(HIGHLIGHTER);
return Highlighter_init(self, searcher, query, field, excerpt_length);
}
Highlighter*
-Highlighter_init(Highlighter *self, Searcher *searcher, Obj *query,
- const CharBuf *field, uint32_t excerpt_length)
-{
+Highlighter_init(Highlighter *self, Searcher *searcher, Obj *query,
+ const CharBuf *field, uint32_t excerpt_length) {
self->query = Searcher_Glean_Query(searcher, query);
self->searcher = (Searcher*)INCREF(searcher);
self->field = CB_Clone(field);
@@ -70,8 +68,7 @@ Highlighter_init(Highlighter *self, Sear
}
void
-Highlighter_destroy(Highlighter *self)
-{
+Highlighter_destroy(Highlighter *self) {
DECREF(self->searcher);
DECREF(self->query);
DECREF(self->compiler);
@@ -82,11 +79,10 @@ Highlighter_destroy(Highlighter *self)
}
CharBuf*
-Highlighter_highlight(Highlighter *self, const CharBuf *text)
-{
- size_t size = CB_Get_Size(text)
- + CB_Get_Size(self->pre_tag)
- + CB_Get_Size(self->post_tag);
+Highlighter_highlight(Highlighter *self, const CharBuf *text) {
+ size_t size = CB_Get_Size(text)
+ + CB_Get_Size(self->pre_tag)
+ + CB_Get_Size(self->post_tag);
CharBuf *retval = CB_new(size);
CB_Cat(retval, self->pre_tag);
CB_Cat(retval, text);
@@ -95,33 +91,55 @@ Highlighter_highlight(Highlighter *self,
}
void
-Highlighter_set_pre_tag(Highlighter *self, const CharBuf *pre_tag)
- { CB_Mimic(self->pre_tag, (Obj*)pre_tag); }
+Highlighter_set_pre_tag(Highlighter *self, const CharBuf *pre_tag) {
+ CB_Mimic(self->pre_tag, (Obj*)pre_tag);
+}
+
void
-Highlighter_set_post_tag(Highlighter *self, const CharBuf *post_tag)
- { CB_Mimic(self->post_tag, (Obj*)post_tag); }
+Highlighter_set_post_tag(Highlighter *self, const CharBuf *post_tag) {
+ CB_Mimic(self->post_tag, (Obj*)post_tag);
+}
CharBuf*
-Highlighter_get_pre_tag(Highlighter *self) { return self->pre_tag; }
+Highlighter_get_pre_tag(Highlighter *self) {
+ return self->pre_tag;
+}
+
CharBuf*
-Highlighter_get_post_tag(Highlighter *self) { return self->post_tag; }
+Highlighter_get_post_tag(Highlighter *self) {
+ return self->post_tag;
+}
+
CharBuf*
-Highlighter_get_field(Highlighter *self) { return self->field; }
+Highlighter_get_field(Highlighter *self) {
+ return self->field;
+}
+
Query*
-Highlighter_get_query(Highlighter *self) { return self->query; }
+Highlighter_get_query(Highlighter *self) {
+ return self->query;
+}
+
Searcher*
-Highlighter_get_searcher(Highlighter *self) { return self->searcher; }
+Highlighter_get_searcher(Highlighter *self) {
+ return self->searcher;
+}
+
Compiler*
-Highlighter_get_compiler(Highlighter *self) { return self->compiler; }
+Highlighter_get_compiler(Highlighter *self) {
+ return self->compiler;
+}
+
uint32_t
-Highlighter_get_excerpt_length(Highlighter *self)
- { return self->excerpt_length; }
+Highlighter_get_excerpt_length(Highlighter *self) {
+ return self->excerpt_length;
+}
CharBuf*
-Highlighter_create_excerpt(Highlighter *self, HitDoc *hit_doc)
-{
- ZombieCharBuf *field_val = (ZombieCharBuf*)HitDoc_Extract(hit_doc,
- self->field, (ViewCharBuf*)ZCB_BLANK());
+Highlighter_create_excerpt(Highlighter *self, HitDoc *hit_doc) {
+ ZombieCharBuf *field_val
+ = (ZombieCharBuf*)HitDoc_Extract(hit_doc, self->field,
+ (ViewCharBuf*)ZCB_BLANK());
if (!field_val || !Obj_Is_A((Obj*)field_val, CHARBUF)) {
return NULL;
@@ -132,25 +150,30 @@ Highlighter_create_excerpt(Highlighter *
}
else {
ZombieCharBuf *fragment = ZCB_WRAP((CharBuf*)field_val);
- CharBuf *raw_excerpt = CB_new(self->excerpt_length + 10);
- CharBuf *highlighted = CB_new( (self->excerpt_length * 3) / 2);
- DocVector *doc_vec = Searcher_Fetch_Doc_Vec(self->searcher,
- HitDoc_Get_Doc_ID(hit_doc));
- VArray *maybe_spans = Compiler_Highlight_Spans(self->compiler,
- self->searcher, doc_vec, self->field);
+ CharBuf *raw_excerpt = CB_new(self->excerpt_length + 10);
+ CharBuf *highlighted = CB_new((self->excerpt_length * 3) / 2);
+ DocVector *doc_vec
+ = Searcher_Fetch_Doc_Vec(self->searcher,
+ HitDoc_Get_Doc_ID(hit_doc));
+ VArray *maybe_spans
+ = Compiler_Highlight_Spans(self->compiler, self->searcher,
+ doc_vec, self->field);
VArray *score_spans = maybe_spans ? maybe_spans : VA_new(0);
- HeatMap *heat_map = HeatMap_new(score_spans,
- (self->excerpt_length * 2) / 3);
- int32_t top = Highlighter_Find_Best_Fragment(self,
- (CharBuf*)field_val, (ViewCharBuf*)fragment, heat_map);
- VArray *sentences = Highlighter_Find_Sentences(self,
- (CharBuf*)field_val, 0, top + self->window_width);
-
- top = Highlighter_Raw_Excerpt(self, (CharBuf*)field_val,
- (CharBuf*)fragment, raw_excerpt, top, heat_map, sentences);
+ HeatMap *heat_map
+ = HeatMap_new(score_spans, (self->excerpt_length * 2) / 3);
+ int32_t top
+ = Highlighter_Find_Best_Fragment(self, (CharBuf*)field_val,
+ (ViewCharBuf*)fragment, heat_map);
+ VArray *sentences
+ = Highlighter_Find_Sentences(self, (CharBuf*)field_val, 0,
+ top + self->window_width);
+
+ top = Highlighter_Raw_Excerpt(self, (CharBuf*)field_val,
+ (CharBuf*)fragment, raw_excerpt, top,
+ heat_map, sentences);
VA_Sort(score_spans, NULL, NULL);
- Highlighter_highlight_excerpt(self, score_spans, raw_excerpt,
- highlighted, top);
+ Highlighter_highlight_excerpt(self, score_spans, raw_excerpt,
+ highlighted, top);
DECREF(sentences);
DECREF(heat_map);
@@ -163,12 +186,11 @@ Highlighter_create_excerpt(Highlighter *
}
static int32_t
-S_hottest(HeatMap *heat_map)
-{
+S_hottest(HeatMap *heat_map) {
float max_score = 0.0f;
int32_t retval = 0;
VArray *spans = HeatMap_Get_Spans(heat_map);
- for (uint32_t i = VA_Get_Size(spans); i--; ) {
+ for (uint32_t i = VA_Get_Size(spans); i--;) {
Span *span = (Span*)VA_Fetch(spans, i);
if (span->weight >= max_score) {
retval = span->offset;
@@ -180,8 +202,7 @@ S_hottest(HeatMap *heat_map)
int32_t
Highlighter_find_best_fragment(Highlighter *self, const CharBuf *field_val,
- ViewCharBuf *fragment, HeatMap *heat_map)
-{
+ ViewCharBuf *fragment, HeatMap *heat_map) {
// Window is 1.66 * excerpt_length, with the loc in the middle.
int32_t best_location = S_hottest(heat_map);
@@ -232,8 +253,7 @@ Highlighter_find_best_fragment(Highlight
// score span, or if there are no score spans so that no excerpt is measurably
// superior.
static bool_t
-S_has_heat(HeatMap *heat_map, int32_t offset, int32_t length)
-{
+S_has_heat(HeatMap *heat_map, int32_t offset, int32_t length) {
VArray *spans = HeatMap_Get_Spans(heat_map);
uint32_t num_spans = VA_Get_Size(spans);
int32_t end = offset + length;
@@ -255,18 +275,17 @@ S_has_heat(HeatMap *heat_map, int32_t of
}
int32_t
-Highlighter_raw_excerpt(Highlighter *self, const CharBuf *field_val,
- const CharBuf *fragment, CharBuf *raw_excerpt,
- int32_t top, HeatMap *heat_map, VArray *sentences)
-{
+Highlighter_raw_excerpt(Highlighter *self, const CharBuf *field_val,
+ const CharBuf *fragment, CharBuf *raw_excerpt,
+ int32_t top, HeatMap *heat_map, VArray *sentences) {
bool_t found_starting_edge = false;
bool_t found_ending_edge = false;
int32_t start = top;
int32_t end = 0;
double field_len = CB_Length(field_val);
uint32_t min_len = field_len < self->excerpt_length * 0.6666
- ? (uint32_t)field_len
- : (uint32_t)(self->excerpt_length * 0.6666);
+ ? (uint32_t)field_len
+ : (uint32_t)(self->excerpt_length * 0.6666);
// Try to find a starting sentence boundary.
const uint32_t num_sentences = VA_Get_Size(sentences);
@@ -285,9 +304,9 @@ Highlighter_raw_excerpt(Highlighter *sel
ZombieCharBuf *temp = ZCB_WRAP(fragment);
ZCB_Nip(temp, candidate - top);
uint32_t chars_left = ZCB_Truncate(temp, self->excerpt_length);
- if ( chars_left >= min_len
+ if (chars_left >= min_len
&& S_has_heat(heat_map, candidate, chars_left)
- ) {
+ ) {
start = candidate;
found_starting_edge = true;
break;
@@ -301,9 +320,9 @@ Highlighter_raw_excerpt(Highlighter *sel
ZombieCharBuf *start_trimmed = ZCB_WRAP(fragment);
ZCB_Nip(start_trimmed, start - top);
- for (uint32_t i = num_sentences; i--; ) {
- Span *sentence = (Span*)VA_Fetch(sentences, i);
- int32_t last_edge = sentence->offset + sentence->length;
+ for (uint32_t i = num_sentences; i--;) {
+ Span *sentence = (Span*)VA_Fetch(sentences, i);
+ int32_t last_edge = sentence->offset + sentence->length;
if (last_edge <= start) {
break;
@@ -313,9 +332,9 @@ Highlighter_raw_excerpt(Highlighter *sel
}
else {
uint32_t chars_left = last_edge - start;
- if ( chars_left > min_len
+ if (chars_left > min_len
&& S_has_heat(heat_map, start, chars_left)
- ) {
+ ) {
found_ending_edge = true;
end = last_edge;
break;
@@ -334,9 +353,9 @@ Highlighter_raw_excerpt(Highlighter *sel
}
}
}
- int32_t this_excerpt_len = found_ending_edge
- ? end - start
- : (int32_t)self->excerpt_length;
+ int32_t this_excerpt_len = found_ending_edge
+ ? end - start
+ : (int32_t)self->excerpt_length;
if (!this_excerpt_len) return start;
if (found_starting_edge) {
@@ -349,7 +368,7 @@ Highlighter_raw_excerpt(Highlighter *sel
else {
ZombieCharBuf *temp = ZCB_WRAP((CharBuf*)field_val);
const size_t ELLIPSIS_LEN = 2; // Unicode ellipsis plus a space.
-
+
// If the excerpt is already shorter than the spec'd length, we might
// not need to make room.
this_excerpt_len += ELLIPSIS_LEN;
@@ -399,14 +418,14 @@ Highlighter_raw_excerpt(Highlighter *sel
// Strip punctuation that collides with an ellipsis.
code_point = CB_Code_Point_From(raw_excerpt, 1);
- while (code_point == '.'
- || code_point == ','
- || code_point == ';'
- || code_point == ':'
- || code_point == ':'
- || code_point == '?'
- || code_point == '!'
- ) {
+ while (code_point == '.'
+ || code_point == ','
+ || code_point == ';'
+ || code_point == ':'
+ || code_point == ':'
+ || code_point == '?'
+ || code_point == '!'
+ ) {
CB_Chop(raw_excerpt, 1);
code_point = CB_Code_Point_From(raw_excerpt, 1);
}
@@ -421,14 +440,13 @@ Highlighter_raw_excerpt(Highlighter *sel
}
void
-Highlighter_highlight_excerpt(Highlighter *self, VArray *spans,
- CharBuf *raw_excerpt, CharBuf *highlighted,
- int32_t top)
-{
- int32_t last_end = 0;
- ZombieCharBuf *temp = ZCB_WRAP(raw_excerpt);
- CharBuf *encode_buf = NULL;
- int32_t raw_excerpt_end = top + CB_Length(raw_excerpt);
+Highlighter_highlight_excerpt(Highlighter *self, VArray *spans,
+ CharBuf *raw_excerpt, CharBuf *highlighted,
+ int32_t top) {
+ int32_t last_end = 0;
+ ZombieCharBuf *temp = ZCB_WRAP(raw_excerpt);
+ CharBuf *encode_buf = NULL;
+ int32_t raw_excerpt_end = top + CB_Length(raw_excerpt);
for (uint32_t i = 0, max = VA_Get_Size(spans); i < max; i++) {
Span *span = (Span*)VA_Fetch(spans, i);
@@ -481,14 +499,13 @@ Highlighter_highlight_excerpt(Highlighte
}
static Span*
-S_start_sentence(int32_t pos)
-{
+S_start_sentence(int32_t pos) {
return Span_new(pos, 0, 0.0);
}
static void
-S_close_sentence(VArray *sentences, Span **sentence_ptr, int32_t sentence_end)
-{
+S_close_sentence(VArray *sentences, Span **sentence_ptr,
+ int32_t sentence_end) {
Span *sentence = *sentence_ptr;
int32_t length = sentence_end - Span_Get_Offset(sentence);
const int32_t MIN_SENTENCE_LENGTH = 3; // e.g. "OK.", but not "2."
@@ -501,8 +518,7 @@ S_close_sentence(VArray *sentences, Span
VArray*
Highlighter_find_sentences(Highlighter *self, CharBuf *text, int32_t offset,
- int32_t length)
-{
+ int32_t length) {
/* When [sentence] is NULL, that means a sentence start has not yet been
* found. When it is a Span object, we have a start, but we haven't found
* an end. Once we find the end, we add the sentence to the [sentences]
@@ -511,9 +527,9 @@ Highlighter_find_sentences(Highlighter *
*/
Span *sentence = NULL;
VArray *sentences = VA_new(10);
- int32_t stop = length == 0
- ? I32_MAX
- : offset + length;
+ int32_t stop = length == 0
+ ? I32_MAX
+ : offset + length;
ZombieCharBuf *fragment = ZCB_WRAP(text);
int32_t pos = ZCB_Trim_Top(fragment);
UNUSED_VAR(self);
@@ -582,16 +598,14 @@ Highlighter_find_sentences(Highlighter *
}
CharBuf*
-Highlighter_encode(Highlighter *self, CharBuf *text)
-{
+Highlighter_encode(Highlighter *self, CharBuf *text) {
CharBuf *encoded = CB_new(0);
UNUSED_VAR(self);
return S_encode_entities(text, encoded);
}
static CharBuf*
-S_do_encode(Highlighter *self, CharBuf *text, CharBuf **encode_buf)
-{
+S_do_encode(Highlighter *self, CharBuf *text, CharBuf **encode_buf) {
if (OVERRIDDEN(self, Highlighter, Encode, encode)) {
return Highlighter_Encode(self, text);
}
@@ -603,8 +617,7 @@ S_do_encode(Highlighter *self, CharBuf *
}
static CharBuf*
-S_encode_entities(CharBuf *text, CharBuf *encoded)
-{
+S_encode_entities(CharBuf *text, CharBuf *encoded) {
ZombieCharBuf *temp = ZCB_WRAP(text);
size_t space = 0;
const int MAX_ENTITY_BYTES = 9; // &#dddddd;
@@ -612,13 +625,13 @@ S_encode_entities(CharBuf *text, CharBuf
// Scan first so that we only allocate once.
uint32_t code_point;
while (0 != (code_point = ZCB_Nip_One(temp))) {
- if ( code_point > 127
+ if (code_point > 127
|| (!isgraph(code_point) && !isspace(code_point))
|| code_point == '<'
|| code_point == '>'
|| code_point == '&'
|| code_point == '"'
- ) {
+ ) {
space += MAX_ENTITY_BYTES;
}
else {
@@ -630,9 +643,9 @@ S_encode_entities(CharBuf *text, CharBuf
CB_Set_Size(encoded, 0);
ZCB_Assign(temp, text);
while (0 != (code_point = ZCB_Nip_One(temp))) {
- if ( code_point > 127
+ if (code_point > 127
|| (!isgraph(code_point) && !isspace(code_point))
- ) {
+ ) {
CB_catf(encoded, "&#%u32;", code_point);
}
else if (code_point == '<') {
Modified: incubator/lucy/trunk/core/Lucy/Highlight/Highlighter.cfh
URL: http://svn.apache.org/viewvc/incubator/lucy/trunk/core/Lucy/Highlight/Highlighter.cfh?rev=1098445&r1=1098444&r2=1098445&view=diff
==============================================================================
--- incubator/lucy/trunk/core/Lucy/Highlight/Highlighter.cfh (original)
+++ incubator/lucy/trunk/core/Lucy/Highlight/Highlighter.cfh Sun May 1 23:50:24 2011
@@ -36,7 +36,7 @@ class Lucy::Highlight::Highlighter inher
Compiler *compiler;
inert incremented Highlighter*
- new(Searcher *searcher, Obj *query, const CharBuf *field,
+ new(Searcher *searcher, Obj *query, const CharBuf *field,
uint32_t excerpt_length = 200);
/**
@@ -50,7 +50,7 @@ class Lucy::Highlight::Highlighter inher
* @param excerpt_length Maximum length of the excerpt, in characters.
*/
public inert Highlighter*
- init(Highlighter *self, Searcher *searcher, Obj *query,
+ init(Highlighter *self, Searcher *searcher, Obj *query,
const CharBuf *field, uint32_t excerpt_length = 200);
/** Take a HitDoc object and return a highlighted excerpt as a string if
@@ -81,7 +81,7 @@ class Lucy::Highlight::Highlighter inher
* until the end of the string.
*/
incremented VArray*
- Find_Sentences(Highlighter *self, CharBuf *text, int32_t offset = 0,
+ Find_Sentences(Highlighter *self, CharBuf *text, int32_t offset = 0,
int32_t length = 0);
/** Highlight a small section of text. By default, prepends pre-tag and
@@ -118,7 +118,7 @@ class Lucy::Highlight::Highlighter inher
/** Accessor.
*/
- public uint32_t
+ public uint32_t
Get_Excerpt_Length(Highlighter *self);
/** Accessor.
@@ -144,7 +144,7 @@ class Lucy::Highlight::Highlighter inher
* (Helper function for Create_Excerpt only exposed for testing purposes.)
*/
int32_t
- Find_Best_Fragment(Highlighter *self, const CharBuf *field_val,
+ Find_Best_Fragment(Highlighter *self, const CharBuf *field_val,
ViewCharBuf *fragment, HeatMap *heat_map);
/** Take the fragment and determine the best edges for it based on
@@ -154,8 +154,8 @@ class Lucy::Highlight::Highlighter inher
* (Helper function for Create_Excerpt only exposed for testing purposes.)
*/
int32_t
- Raw_Excerpt(Highlighter *self, const CharBuf *field_val,
- const CharBuf *fragment, CharBuf *raw_excerpt, int32_t top,
+ Raw_Excerpt(Highlighter *self, const CharBuf *field_val,
+ const CharBuf *fragment, CharBuf *raw_excerpt, int32_t top,
HeatMap *heat_map, VArray *sentences);
/** Take the text in raw_excerpt, add highlight tags, encode, and place
@@ -164,7 +164,7 @@ class Lucy::Highlight::Highlighter inher
* (Helper function for Create_Excerpt only exposed for testing purposes.)
*/
void
- Highlight_Excerpt(Highlighter *self, VArray *spans, CharBuf *raw_excerpt,
+ Highlight_Excerpt(Highlighter *self, VArray *spans, CharBuf *raw_excerpt,
CharBuf *highlighted, int32_t top);
public void
Modified: incubator/lucy/trunk/core/Lucy/Index/BackgroundMerger.c
URL: http://svn.apache.org/viewvc/incubator/lucy/trunk/core/Lucy/Index/BackgroundMerger.c?rev=1098445&r1=1098444&r2=1098445&view=diff
==============================================================================
--- incubator/lucy/trunk/core/Lucy/Index/BackgroundMerger.c (original)
+++ incubator/lucy/trunk/core/Lucy/Index/BackgroundMerger.c Sun May 1 23:50:24 2011
@@ -57,16 +57,14 @@ static void
S_release_merge_lock(BackgroundMerger *self);
BackgroundMerger*
-BGMerger_new(Obj *index, IndexManager *manager)
-{
- BackgroundMerger *self
+BGMerger_new(Obj *index, IndexManager *manager) {
+ BackgroundMerger *self
= (BackgroundMerger*)VTable_Make_Obj(BACKGROUNDMERGER);
return BGMerger_init(self, index, manager);
}
BackgroundMerger*
-BGMerger_init(BackgroundMerger *self, Obj *index, IndexManager *manager)
-{
+BGMerger_init(BackgroundMerger *self, Obj *index, IndexManager *manager) {
Folder *folder = S_init_folder(index);
// Init.
@@ -119,14 +117,14 @@ BGMerger_init(BackgroundMerger *self, Ob
// Clone the PolyReader's schema.
{
Hash *dump = Schema_Dump(PolyReader_Get_Schema(self->polyreader));
- self->schema = (Schema*)CERTIFY(
- VTable_Load_Obj(SCHEMA, (Obj*)dump), SCHEMA);
+ self->schema = (Schema*)CERTIFY(VTable_Load_Obj(SCHEMA, (Obj*)dump),
+ SCHEMA);
DECREF(dump);
}
// Create new Segment.
{
- int64_t new_seg_num
+ int64_t new_seg_num
= IxManager_Highest_Seg_Num(self->manager, self->snapshot) + 1;
VArray *fields = Schema_All_Fields(self->schema);
uint32_t i, max;
@@ -147,11 +145,11 @@ BGMerger_init(BackgroundMerger *self, Ob
* need it. (We've reserved the dir by plopping down the merge.json
* file.) */
self->seg_writer = SegWriter_new(self->schema, self->snapshot,
- self->segment, self->polyreader);
+ self->segment, self->polyreader);
// Grab a local ref to the DeletionsWriter.
- self->del_writer = (DeletionsWriter*)INCREF(
- SegWriter_Get_Del_Writer(self->seg_writer));
+ self->del_writer
+ = (DeletionsWriter*)INCREF(SegWriter_Get_Del_Writer(self->seg_writer));
// Release the write lock. Now new Indexers can start while we work in
// the background.
@@ -161,8 +159,7 @@ BGMerger_init(BackgroundMerger *self, Ob
}
void
-BGMerger_destroy(BackgroundMerger *self)
-{
+BGMerger_destroy(BackgroundMerger *self) {
S_release_merge_lock(self);
S_release_write_lock(self);
DECREF(self->schema);
@@ -181,8 +178,7 @@ BGMerger_destroy(BackgroundMerger *self)
}
static Folder*
-S_init_folder(Obj *index)
-{
+S_init_folder(Obj *index) {
Folder *folder = NULL;
// Validate or acquire a Folder.
@@ -205,16 +201,14 @@ S_init_folder(Obj *index)
}
void
-BGMerger_optimize(BackgroundMerger *self)
-{
+BGMerger_optimize(BackgroundMerger *self) {
self->optimize = true;
}
-static uint32_t
-S_maybe_merge(BackgroundMerger *self)
-{
- VArray *to_merge = IxManager_Recycle(self->manager,
- self->polyreader, self->del_writer, 0, self->optimize);
+static uint32_t
+S_maybe_merge(BackgroundMerger *self) {
+ VArray *to_merge = IxManager_Recycle(self->manager, self->polyreader,
+ self->del_writer, 0, self->optimize);
int32_t num_to_merge = VA_Get_Size(to_merge);
uint32_t i, max;
@@ -240,10 +234,12 @@ S_maybe_merge(BackgroundMerger *self)
SegReader *seg_reader = (SegReader*)VA_Fetch(to_merge, i);
CharBuf *seg_name = SegReader_Get_Seg_Name(seg_reader);
int64_t doc_count = Seg_Get_Count(self->segment);
- Matcher *deletions
+ Matcher *deletions
= DelWriter_Seg_Deletions(self->del_writer, seg_reader);
- I32Array *doc_map = DelWriter_Generate_Doc_Map(self->del_writer,
- deletions, SegReader_Doc_Max(seg_reader), (int32_t)doc_count);
+ I32Array *doc_map = DelWriter_Generate_Doc_Map(
+ self->del_writer, deletions,
+ SegReader_Doc_Max(seg_reader),
+ (int32_t)doc_count);
Hash_Store(self->doc_maps, (Obj*)seg_name, (Obj*)doc_map);
SegWriter_Merge_Segment(self->seg_writer, seg_reader, doc_map);
@@ -255,16 +251,15 @@ S_maybe_merge(BackgroundMerger *self)
}
static bool_t
-S_merge_updated_deletions(BackgroundMerger *self)
-{
+S_merge_updated_deletions(BackgroundMerger *self) {
Hash *updated_deletions = NULL;
{
- PolyReader *new_polyreader
+ PolyReader *new_polyreader
= PolyReader_open((Obj*)self->folder, NULL, NULL);
- VArray *new_seg_readers
+ VArray *new_seg_readers
= PolyReader_Get_Seg_Readers(new_polyreader);
- VArray *old_seg_readers
+ VArray *old_seg_readers
= PolyReader_Get_Seg_Readers(self->polyreader);
Hash *new_segs = Hash_new(VA_Get_Size(new_seg_readers));
uint32_t i, max;
@@ -281,20 +276,23 @@ S_merge_updated_deletions(BackgroundMerg
// If this segment was merged away...
if (Hash_Fetch(self->doc_maps, (Obj*)seg_name)) {
- SegReader *new_seg_reader = (SegReader*)CERTIFY(
- Hash_Fetch(new_segs, (Obj*)seg_name), SEGREADER);
+ SegReader *new_seg_reader
+ = (SegReader*)CERTIFY(
+ Hash_Fetch(new_segs, (Obj*)seg_name),
+ SEGREADER);
int32_t old_del_count = SegReader_Del_Count(seg_reader);
int32_t new_del_count = SegReader_Del_Count(new_seg_reader);
// ... were any new deletions applied against it?
if (old_del_count != new_del_count) {
- DeletionsReader *del_reader = (DeletionsReader*)
- SegReader_Obtain(new_seg_reader,
- VTable_Get_Name(DELETIONSREADER));
+ DeletionsReader *del_reader
+ = (DeletionsReader*)SegReader_Obtain(
+ new_seg_reader,
+ VTable_Get_Name(DELETIONSREADER));
if (!updated_deletions) {
updated_deletions = Hash_new(max);
}
- Hash_Store(updated_deletions, (Obj*)seg_name,
- (Obj*)DelReader_Iterator(del_reader));
+ Hash_Store(updated_deletions, (Obj*)seg_name,
+ (Obj*)DelReader_Iterator(del_reader));
}
}
}
@@ -307,17 +305,17 @@ S_merge_updated_deletions(BackgroundMerg
return false;
}
else {
- PolyReader *merge_polyreader = PolyReader_open((Obj*)self->folder,
- self->snapshot, NULL);
- VArray *merge_seg_readers
+ PolyReader *merge_polyreader
+ = PolyReader_open((Obj*)self->folder, self->snapshot, NULL);
+ VArray *merge_seg_readers
= PolyReader_Get_Seg_Readers(merge_polyreader);
Snapshot *latest_snapshot
= Snapshot_Read_File(Snapshot_new(), self->folder, NULL);
int64_t new_seg_num
= IxManager_Highest_Seg_Num(self->manager, latest_snapshot) + 1;
- Segment *new_segment = Seg_new(new_seg_num);
- SegWriter *seg_writer = SegWriter_new(self->schema, self->snapshot,
- new_segment, merge_polyreader);
+ Segment *new_segment = Seg_new(new_seg_num);
+ SegWriter *seg_writer = SegWriter_new(self->schema, self->snapshot,
+ new_segment, merge_polyreader);
DeletionsWriter *del_writer = SegWriter_Get_Del_Writer(seg_writer);
int64_t merge_seg_num = Seg_Get_Number(self->segment);
uint32_t seg_tick = I32_MAX;
@@ -329,7 +327,7 @@ S_merge_updated_deletions(BackgroundMerg
SegWriter_Prep_Seg_Dir(seg_writer);
for (i = 0, max = VA_Get_Size(merge_seg_readers); i < max; i++) {
- SegReader *seg_reader
+ SegReader *seg_reader
= (SegReader*)VA_Fetch(merge_seg_readers, i);
if (SegReader_Get_Seg_Num(seg_reader) == merge_seg_num) {
I32Array *offsets = PolyReader_Offsets(merge_polyreader);
@@ -341,13 +339,14 @@ S_merge_updated_deletions(BackgroundMerg
if (offset == I32_MAX) { THROW(ERR, "Failed sanity check"); }
Hash_Iterate(updated_deletions);
- while ( Hash_Next(updated_deletions,
- (Obj**)&seg_name, (Obj**)&deletions)
- ) {
- I32Array *doc_map = (I32Array*)CERTIFY(
- Hash_Fetch(self->doc_maps, (Obj*)seg_name), I32ARRAY);
+ while (Hash_Next(updated_deletions,
+ (Obj**)&seg_name, (Obj**)&deletions)
+ ) {
+ I32Array *doc_map
+ = (I32Array*)CERTIFY(
+ Hash_Fetch(self->doc_maps, (Obj*)seg_name),
+ I32ARRAY);
int32_t del;
-
while (0 != (del = Matcher_Next(deletions))) {
// Find the slot where the deleted doc resides in the
// rewritten segment. If the doc was already deleted when we
@@ -375,8 +374,7 @@ S_merge_updated_deletions(BackgroundMerg
}
void
-BGMerger_prepare_commit(BackgroundMerger *self)
-{
+BGMerger_prepare_commit(BackgroundMerger *self) {
VArray *seg_readers = PolyReader_Get_Seg_Readers(self->polyreader);
uint32_t num_seg_readers = VA_Get_Size(seg_readers);
uint32_t segs_merged = 0;
@@ -386,7 +384,7 @@ BGMerger_prepare_commit(BackgroundMerger
}
// Maybe merge existing index data.
- if (num_seg_readers) {
+ if (num_seg_readers) {
segs_merged = S_maybe_merge(self);
}
@@ -427,12 +425,12 @@ BGMerger_prepare_commit(BackgroundMerger
// Determine whether the index has been updated while this background
// merge process was running.
{
- CharBuf *start_snapfile = Snapshot_Get_Path(
- PolyReader_Get_Snapshot(self->polyreader));
- Snapshot *latest_snapshot
+ CharBuf *start_snapfile
+ = Snapshot_Get_Path(PolyReader_Get_Snapshot(self->polyreader));
+ Snapshot *latest_snapshot
= Snapshot_Read_File(Snapshot_new(), self->folder, NULL);
CharBuf *latest_snapfile = Snapshot_Get_Path(latest_snapshot);
- bool_t index_updated
+ bool_t index_updated
= !CB_Equals(start_snapfile, (Obj*)latest_snapfile);
if (index_updated) {
@@ -481,10 +479,9 @@ BGMerger_prepare_commit(BackgroundMerger
}
void
-BGMerger_commit(BackgroundMerger *self)
-{
+BGMerger_commit(BackgroundMerger *self) {
// Safety check.
- if ( !self->merge_lock ) {
+ if (!self->merge_lock) {
THROW(ERR, "Can't call commit() more than once");
}
@@ -499,11 +496,11 @@ BGMerger_commit(BackgroundMerger *self)
// Rename temp snapshot file.
CB_Chop(self->snapfile, sizeof(".temp") - 1);
success = Folder_Hard_Link(self->folder, temp_snapfile,
- self->snapfile);
+ self->snapfile);
Snapshot_Set_Path(self->snapshot, self->snapfile);
if (!success) {
CharBuf *mess = CB_newf("Can't create hard link from %o to %o",
- temp_snapfile, self->snapfile);
+ temp_snapfile, self->snapfile);
DECREF(temp_snapfile);
Err_throw_mess(ERR, mess);
}
@@ -529,8 +526,7 @@ BGMerger_commit(BackgroundMerger *self)
}
static void
-S_obtain_write_lock(BackgroundMerger *self)
-{
+S_obtain_write_lock(BackgroundMerger *self) {
Lock *write_lock = IxManager_Make_Write_Lock(self->manager);
Lock_Clear_Stale(write_lock);
if (Lock_Obtain(write_lock)) {
@@ -543,8 +539,7 @@ S_obtain_write_lock(BackgroundMerger *se
}
static void
-S_obtain_merge_lock(BackgroundMerger *self)
-{
+S_obtain_merge_lock(BackgroundMerger *self) {
Lock *merge_lock = IxManager_Make_Merge_Lock(self->manager);
Lock_Clear_Stale(merge_lock);
if (Lock_Obtain(merge_lock)) {
@@ -559,8 +554,7 @@ S_obtain_merge_lock(BackgroundMerger *se
}
static void
-S_release_write_lock(BackgroundMerger *self)
-{
+S_release_write_lock(BackgroundMerger *self) {
if (self->write_lock) {
Lock_Release(self->write_lock);
DECREF(self->write_lock);
@@ -569,8 +563,7 @@ S_release_write_lock(BackgroundMerger *s
}
static void
-S_release_merge_lock(BackgroundMerger *self)
-{
+S_release_merge_lock(BackgroundMerger *self) {
if (self->merge_lock) {
Lock_Release(self->merge_lock);
DECREF(self->merge_lock);
Modified: incubator/lucy/trunk/core/Lucy/Index/BitVecDelDocs.c
URL: http://svn.apache.org/viewvc/incubator/lucy/trunk/core/Lucy/Index/BitVecDelDocs.c?rev=1098445&r1=1098444&r2=1098445&view=diff
==============================================================================
--- incubator/lucy/trunk/core/Lucy/Index/BitVecDelDocs.c (original)
+++ incubator/lucy/trunk/core/Lucy/Index/BitVecDelDocs.c Sun May 1 23:50:24 2011
@@ -22,22 +22,20 @@
#include "Lucy/Store/InStream.h"
BitVecDelDocs*
-BitVecDelDocs_new(Folder *folder, const CharBuf *filename)
-{
+BitVecDelDocs_new(Folder *folder, const CharBuf *filename) {
BitVecDelDocs *self = (BitVecDelDocs*)VTable_Make_Obj(BITVECDELDOCS);
return BitVecDelDocs_init(self, folder, filename);
}
BitVecDelDocs*
-BitVecDelDocs_init(BitVecDelDocs *self, Folder *folder,
- const CharBuf *filename)
-{
+BitVecDelDocs_init(BitVecDelDocs *self, Folder *folder,
+ const CharBuf *filename) {
int32_t len;
BitVec_init((BitVector*)self, 0);
self->filename = CB_Clone(filename);
self->instream = Folder_Open_In(folder, filename);
- if (!self->instream) {
+ if (!self->instream) {
Err *error = (Err*)INCREF(Err_get_error());
DECREF(self);
RETHROW(error);
@@ -49,8 +47,7 @@ BitVecDelDocs_init(BitVecDelDocs *self,
}
void
-BitVecDelDocs_destroy(BitVecDelDocs *self)
-{
+BitVecDelDocs_destroy(BitVecDelDocs *self) {
DECREF(self->filename);
if (self->instream) {
InStream_Close(self->instream);
Modified: incubator/lucy/trunk/core/Lucy/Index/DataReader.c
URL: http://svn.apache.org/viewvc/incubator/lucy/trunk/core/Lucy/Index/DataReader.c?rev=1098445&r1=1098444&r2=1098445&view=diff
==============================================================================
--- incubator/lucy/trunk/core/Lucy/Index/DataReader.c (original)
+++ incubator/lucy/trunk/core/Lucy/Index/DataReader.c Sun May 1 23:50:24 2011
@@ -24,9 +24,8 @@
#include "Lucy/Store/Folder.h"
DataReader*
-DataReader_init(DataReader *self, Schema *schema, Folder *folder,
- Snapshot *snapshot, VArray *segments, int32_t seg_tick)
-{
+DataReader_init(DataReader *self, Schema *schema, Folder *folder,
+ Snapshot *snapshot, VArray *segments, int32_t seg_tick) {
self->schema = (Schema*)INCREF(schema);
self->folder = (Folder*)INCREF(folder);
self->snapshot = (Snapshot*)INCREF(snapshot);
@@ -35,7 +34,7 @@ DataReader_init(DataReader *self, Schema
if (seg_tick != -1) {
if (!segments) {
THROW(ERR, "No segments array provided, but seg_tick is %i32",
- seg_tick);
+ seg_tick);
}
else {
Segment *segment = (Segment*)VA_Fetch(segments, seg_tick);
@@ -54,8 +53,7 @@ DataReader_init(DataReader *self, Schema
}
void
-DataReader_destroy(DataReader *self)
-{
+DataReader_destroy(DataReader *self) {
DECREF(self->schema);
DECREF(self->folder);
DECREF(self->snapshot);
@@ -65,22 +63,33 @@ DataReader_destroy(DataReader *self)
}
Schema*
-DataReader_get_schema(DataReader *self)
- { return self->schema; }
+DataReader_get_schema(DataReader *self) {
+ return self->schema;
+}
+
Folder*
-DataReader_get_folder(DataReader *self)
- { return self->folder; }
+DataReader_get_folder(DataReader *self) {
+ return self->folder;
+}
+
Snapshot*
-DataReader_get_snapshot(DataReader *self)
- { return self->snapshot; }
+DataReader_get_snapshot(DataReader *self) {
+ return self->snapshot;
+}
+
VArray*
-DataReader_get_segments(DataReader *self)
- { return self->segments; }
+DataReader_get_segments(DataReader *self) {
+ return self->segments;
+}
+
int32_t
-DataReader_get_seg_tick(DataReader *self)
- { return self->seg_tick; }
+DataReader_get_seg_tick(DataReader *self) {
+ return self->seg_tick;
+}
+
Segment*
-DataReader_get_segment(DataReader *self)
- { return self->segment; }
+DataReader_get_segment(DataReader *self) {
+ return self->segment;
+}
Modified: incubator/lucy/trunk/core/Lucy/Index/DataReader.cfh
URL: http://svn.apache.org/viewvc/incubator/lucy/trunk/core/Lucy/Index/DataReader.cfh?rev=1098445&r1=1098444&r2=1098445&view=diff
==============================================================================
--- incubator/lucy/trunk/core/Lucy/Index/DataReader.cfh (original)
+++ incubator/lucy/trunk/core/Lucy/Index/DataReader.cfh Sun May 1 23:50:24 2011
@@ -44,7 +44,7 @@ class Lucy::Index::DataReader inherits L
*/
public inert DataReader*
init(DataReader *self, Schema *schema = NULL, Folder *folder = NULL,
- Snapshot *snapshot = NULL, VArray *segments = NULL,
+ Snapshot *snapshot = NULL, VArray *segments = NULL,
int32_t seg_tick = -1);
/** Create a reader which aggregates the output of several lower level
Modified: incubator/lucy/trunk/core/Lucy/Index/DataWriter.c
URL: http://svn.apache.org/viewvc/incubator/lucy/trunk/core/Lucy/Index/DataWriter.c?rev=1098445&r1=1098444&r2=1098445&view=diff
==============================================================================
--- incubator/lucy/trunk/core/Lucy/Index/DataWriter.c (original)
+++ incubator/lucy/trunk/core/Lucy/Index/DataWriter.c Sun May 1 23:50:24 2011
@@ -28,8 +28,7 @@
DataWriter*
DataWriter_init(DataWriter *self, Schema *schema, Snapshot *snapshot,
- Segment *segment, PolyReader *polyreader)
-{
+ Segment *segment, PolyReader *polyreader) {
self->snapshot = (Snapshot*)INCREF(snapshot);
self->segment = (Segment*)INCREF(segment);
self->polyreader = (PolyReader*)INCREF(polyreader);
@@ -40,8 +39,7 @@ DataWriter_init(DataWriter *self, Schema
}
void
-DataWriter_destroy(DataWriter *self)
-{
+DataWriter_destroy(DataWriter *self) {
DECREF(self->snapshot);
DECREF(self->segment);
DECREF(self->polyreader);
@@ -51,37 +49,48 @@ DataWriter_destroy(DataWriter *self)
}
Snapshot*
-DataWriter_get_snapshot(DataWriter *self) { return self->snapshot; }
+DataWriter_get_snapshot(DataWriter *self) {
+ return self->snapshot;
+}
+
Segment*
-DataWriter_get_segment(DataWriter *self) { return self->segment; }
+DataWriter_get_segment(DataWriter *self) {
+ return self->segment;
+}
+
PolyReader*
-DataWriter_get_polyreader(DataWriter *self) { return self->polyreader; }
+DataWriter_get_polyreader(DataWriter *self) {
+ return self->polyreader;
+}
+
Schema*
-DataWriter_get_schema(DataWriter *self) { return self->schema; }
+DataWriter_get_schema(DataWriter *self) {
+ return self->schema;
+}
+
Folder*
-DataWriter_get_folder(DataWriter *self) { return self->folder; }
+DataWriter_get_folder(DataWriter *self) {
+ return self->folder;
+}
void
-DataWriter_delete_segment(DataWriter *self, SegReader *reader)
-{
+DataWriter_delete_segment(DataWriter *self, SegReader *reader) {
UNUSED_VAR(self);
UNUSED_VAR(reader);
}
void
-DataWriter_merge_segment(DataWriter *self, SegReader *reader,
- I32Array *doc_map)
-{
+DataWriter_merge_segment(DataWriter *self, SegReader *reader,
+ I32Array *doc_map) {
DataWriter_Add_Segment(self, reader, doc_map);
DataWriter_Delete_Segment(self, reader);
}
Hash*
-DataWriter_metadata(DataWriter *self)
-{
+DataWriter_metadata(DataWriter *self) {
Hash *metadata = Hash_new(0);
- Hash_Store_Str(metadata, "format", 6,
- (Obj*)CB_newf("%i32", DataWriter_Format(self)));
+ Hash_Store_Str(metadata, "format", 6,
+ (Obj*)CB_newf("%i32", DataWriter_Format(self)));
return metadata;
}
Modified: incubator/lucy/trunk/core/Lucy/Index/DataWriter.cfh
URL: http://svn.apache.org/viewvc/incubator/lucy/trunk/core/Lucy/Index/DataWriter.cfh?rev=1098445&r1=1098444&r2=1098445&view=diff
==============================================================================
--- incubator/lucy/trunk/core/Lucy/Index/DataWriter.cfh (original)
+++ incubator/lucy/trunk/core/Lucy/Index/DataWriter.cfh Sun May 1 23:50:24 2011
@@ -44,7 +44,7 @@ public class Lucy::Index::DataWriter inh
* sub-readers).
*/
public inert DataWriter*
- init(DataWriter *self, Schema *schema, Snapshot *snapshot,
+ init(DataWriter *self, Schema *schema, Snapshot *snapshot,
Segment *segment, PolyReader *polyreader);
/** Process a document, previously inverted by <code>inverter</code>.
@@ -65,7 +65,7 @@ public class Lucy::Index::DataWriter inh
* skipped.
*/
public abstract void
- Add_Segment(DataWriter *self, SegReader *reader,
+ Add_Segment(DataWriter *self, SegReader *reader,
I32Array *doc_map = NULL);
/** Remove a segment's data. The default implementation is a no-op, as
@@ -92,7 +92,7 @@ public class Lucy::Index::DataWriter inh
* skipped.
*/
public void
- Merge_Segment(DataWriter *self, SegReader *reader,
+ Merge_Segment(DataWriter *self, SegReader *reader,
I32Array *doc_map = NULL);
/** Complete the segment: close all streams, store metadata, etc.
@@ -118,7 +118,7 @@ public class Lucy::Index::DataWriter inh
*/
public Snapshot*
Get_Snapshot(DataWriter *self);
-
+
/** Accessor for "segment" member var.
*/
public Segment*
Modified: incubator/lucy/trunk/core/Lucy/Index/DeletionsReader.c
URL: http://svn.apache.org/viewvc/incubator/lucy/trunk/core/Lucy/Index/DeletionsReader.c?rev=1098445&r1=1098444&r2=1098445&view=diff
==============================================================================
--- incubator/lucy/trunk/core/Lucy/Index/DeletionsReader.c (original)
+++ incubator/lucy/trunk/core/Lucy/Index/DeletionsReader.c Sun May 1 23:50:24 2011
@@ -32,41 +32,37 @@
#include "Lucy/Util/IndexFileNames.h"
DeletionsReader*
-DelReader_init(DeletionsReader *self, Schema *schema, Folder *folder,
- Snapshot *snapshot, VArray *segments, int32_t seg_tick)
-{
- DataReader_init((DataReader*)self, schema, folder, snapshot, segments,
- seg_tick);
+DelReader_init(DeletionsReader *self, Schema *schema, Folder *folder,
+ Snapshot *snapshot, VArray *segments, int32_t seg_tick) {
+ DataReader_init((DataReader*)self, schema, folder, snapshot, segments,
+ seg_tick);
ABSTRACT_CLASS_CHECK(self, DELETIONSREADER);
return self;
}
DeletionsReader*
-DelReader_aggregator(DeletionsReader *self, VArray *readers,
- I32Array *offsets)
-{
+DelReader_aggregator(DeletionsReader *self, VArray *readers,
+ I32Array *offsets) {
UNUSED_VAR(self);
return (DeletionsReader*)PolyDelReader_new(readers, offsets);
}
PolyDeletionsReader*
-PolyDelReader_new(VArray *readers, I32Array *offsets)
-{
- PolyDeletionsReader *self
+PolyDelReader_new(VArray *readers, I32Array *offsets) {
+ PolyDeletionsReader *self
= (PolyDeletionsReader*)VTable_Make_Obj(POLYDELETIONSREADER);
return PolyDelReader_init(self, readers, offsets);
}
PolyDeletionsReader*
-PolyDelReader_init(PolyDeletionsReader *self, VArray *readers,
- I32Array *offsets)
-{
+PolyDelReader_init(PolyDeletionsReader *self, VArray *readers,
+ I32Array *offsets) {
uint32_t i, max;
DelReader_init((DeletionsReader*)self, NULL, NULL, NULL, NULL, -1);
self->del_count = 0;
for (i = 0, max = VA_Get_Size(readers); i < max; i++) {
DeletionsReader *reader = (DeletionsReader*)CERTIFY(
- VA_Fetch(readers, i), DELETIONSREADER);
+ VA_Fetch(readers, i), DELETIONSREADER);
self->del_count += DelReader_Del_Count(reader);
}
self->readers = (VArray*)INCREF(readers);
@@ -75,12 +71,11 @@ PolyDelReader_init(PolyDeletionsReader *
}
void
-PolyDelReader_close(PolyDeletionsReader *self)
-{
+PolyDelReader_close(PolyDeletionsReader *self) {
if (self->readers) {
uint32_t i, max;
for (i = 0, max = VA_Get_Size(self->readers); i < max; i++) {
- DeletionsReader *reader
+ DeletionsReader *reader
= (DeletionsReader*)VA_Fetch(self->readers, i);
if (reader) { DelReader_Close(reader); }
}
@@ -89,29 +84,26 @@ PolyDelReader_close(PolyDeletionsReader
}
void
-PolyDelReader_destroy(PolyDeletionsReader *self)
-{
+PolyDelReader_destroy(PolyDeletionsReader *self) {
DECREF(self->readers);
DECREF(self->offsets);
SUPER_DESTROY(self, POLYDELETIONSREADER);
}
int32_t
-PolyDelReader_del_count(PolyDeletionsReader *self)
-{
+PolyDelReader_del_count(PolyDeletionsReader *self) {
return self->del_count;
}
Matcher*
-PolyDelReader_iterator(PolyDeletionsReader *self)
-{
+PolyDelReader_iterator(PolyDeletionsReader *self) {
SeriesMatcher *deletions = NULL;
if (self->del_count) {
uint32_t num_readers = VA_Get_Size(self->readers);
VArray *matchers = VA_new(num_readers);
uint32_t i;
for (i = 0; i < num_readers; i++) {
- DeletionsReader *reader
+ DeletionsReader *reader
= (DeletionsReader*)VA_Fetch(self->readers, i);
Matcher *matcher = DelReader_Iterator(reader);
if (matcher) { VA_Store(matchers, i, (Obj*)matcher); }
@@ -124,71 +116,68 @@ PolyDelReader_iterator(PolyDeletionsRead
DefaultDeletionsReader*
DefDelReader_new(Schema *schema, Folder *folder, Snapshot *snapshot,
- VArray *segments, int32_t seg_tick)
-{
- DefaultDeletionsReader *self
+ VArray *segments, int32_t seg_tick) {
+ DefaultDeletionsReader *self
= (DefaultDeletionsReader*)VTable_Make_Obj(DEFAULTDELETIONSREADER);
return DefDelReader_init(self, schema, folder, snapshot, segments,
- seg_tick);
+ seg_tick);
}
DefaultDeletionsReader*
-DefDelReader_init(DefaultDeletionsReader *self, Schema *schema,
+DefDelReader_init(DefaultDeletionsReader *self, Schema *schema,
Folder *folder, Snapshot *snapshot, VArray *segments,
- int32_t seg_tick)
-{
+ int32_t seg_tick) {
DelReader_init((DeletionsReader*)self, schema, folder, snapshot, segments,
- seg_tick);
+ seg_tick);
DefDelReader_Read_Deletions(self);
- if (!self->deldocs) {
+ if (!self->deldocs) {
self->del_count = 0;
- self->deldocs = BitVec_new(0);
+ self->deldocs = BitVec_new(0);
}
return self;
}
void
-DefDelReader_close(DefaultDeletionsReader *self)
-{
+DefDelReader_close(DefaultDeletionsReader *self) {
DECREF(self->deldocs);
self->deldocs = NULL;
}
void
-DefDelReader_destroy(DefaultDeletionsReader *self)
-{
+DefDelReader_destroy(DefaultDeletionsReader *self) {
DECREF(self->deldocs);
SUPER_DESTROY(self, DEFAULTDELETIONSREADER);
}
BitVector*
-DefDelReader_read_deletions(DefaultDeletionsReader *self)
-{
+DefDelReader_read_deletions(DefaultDeletionsReader *self) {
VArray *segments = DefDelReader_Get_Segments(self);
Segment *segment = DefDelReader_Get_Segment(self);
CharBuf *my_seg_name = Seg_Get_Name(segment);
CharBuf *del_file = NULL;
int32_t del_count = 0;
int32_t i;
-
+
// Start with deletions files in the most recently added segments and work
// backwards. The first one we find which addresses our segment is the
// one we need.
for (i = VA_Get_Size(segments) - 1; i >= 0; i--) {
Segment *other_seg = (Segment*)VA_Fetch(segments, i);
- Hash *metadata
+ Hash *metadata
= (Hash*)Seg_Fetch_Metadata_Str(other_seg, "deletions", 9);
if (metadata) {
Hash *files = (Hash*)CERTIFY(
- Hash_Fetch_Str(metadata, "files", 5), HASH);
- Hash *seg_files_data
+ Hash_Fetch_Str(metadata, "files", 5), HASH);
+ Hash *seg_files_data
= (Hash*)Hash_Fetch(files, (Obj*)my_seg_name);
if (seg_files_data) {
Obj *count = (Obj*)CERTIFY(
- Hash_Fetch_Str(seg_files_data, "count", 5), OBJ);
+ Hash_Fetch_Str(seg_files_data, "count", 5),
+ OBJ);
del_count = (int32_t)Obj_To_I64(count);
del_file = (CharBuf*)CERTIFY(
- Hash_Fetch_Str(seg_files_data, "filename", 8), CHARBUF);
+ Hash_Fetch_Str(seg_files_data, "filename", 8),
+ CHARBUF);
break;
}
}
@@ -208,15 +197,13 @@ DefDelReader_read_deletions(DefaultDelet
}
Matcher*
-DefDelReader_iterator(DefaultDeletionsReader *self)
-{
+DefDelReader_iterator(DefaultDeletionsReader *self) {
return (Matcher*)BitVecMatcher_new(self->deldocs);
}
int32_t
-DefDelReader_del_count(DefaultDeletionsReader *self)
-{
- return self->del_count;
+DefDelReader_del_count(DefaultDeletionsReader *self) {
+ return self->del_count;
}
Modified: incubator/lucy/trunk/core/Lucy/Index/DeletionsReader.cfh
URL: http://svn.apache.org/viewvc/incubator/lucy/trunk/core/Lucy/Index/DeletionsReader.cfh?rev=1098445&r1=1098444&r2=1098445&view=diff
==============================================================================
--- incubator/lucy/trunk/core/Lucy/Index/DeletionsReader.cfh (original)
+++ incubator/lucy/trunk/core/Lucy/Index/DeletionsReader.cfh Sun May 1 23:50:24 2011
@@ -21,13 +21,13 @@ class Lucy::Index::DeletionsReader cnick
inert DeletionsReader*
init(DeletionsReader *self, Schema *schema = NULL, Folder *folder = NULL,
- Snapshot *snapshot = NULL, VArray *segments = NULL,
+ Snapshot *snapshot = NULL, VArray *segments = NULL,
int32_t seg_tick = -1);
-
+
/** Return the number of docs which have been marked as deleted in this
* segment.
*/
- abstract int32_t
+ abstract int32_t
Del_Count(DeletionsReader *self);
/** Return a Matcher which iterates over the set of all deleted doc nums
@@ -53,7 +53,7 @@ class Lucy::Index::PolyDeletionsReader c
inert PolyDeletionsReader*
init(PolyDeletionsReader *self, VArray *readers, I32Array *offsets);
- int32_t
+ int32_t
Del_Count(PolyDeletionsReader *self);
incremented Matcher*
@@ -80,7 +80,7 @@ class Lucy::Index::DefaultDeletionsReade
init(DefaultDeletionsReader *self, Schema *schema, Folder *folder,
Snapshot *snapshot, VArray *segments, int32_t seg_tick);
- int32_t
+ int32_t
Del_Count(DefaultDeletionsReader *self);
incremented Matcher*
Modified: incubator/lucy/trunk/core/Lucy/Index/DeletionsWriter.c
URL: http://svn.apache.org/viewvc/incubator/lucy/trunk/core/Lucy/Index/DeletionsWriter.c?rev=1098445&r1=1098444&r2=1098445&view=diff
==============================================================================
--- incubator/lucy/trunk/core/Lucy/Index/DeletionsWriter.c (original)
+++ incubator/lucy/trunk/core/Lucy/Index/DeletionsWriter.c Sun May 1 23:50:24 2011
@@ -40,8 +40,7 @@
DeletionsWriter*
DelWriter_init(DeletionsWriter *self, Schema *schema, Snapshot *snapshot,
- Segment *segment, PolyReader *polyreader)
-{
+ Segment *segment, PolyReader *polyreader) {
DataWriter_init((DataWriter*)self, schema, snapshot, segment, polyreader);
ABSTRACT_CLASS_CHECK(self, DELETIONSWRITER);
return self;
@@ -49,8 +48,7 @@ DelWriter_init(DeletionsWriter *self, Sc
I32Array*
DelWriter_generate_doc_map(DeletionsWriter *self, Matcher *deletions,
- int32_t doc_max, int32_t offset)
-{
+ int32_t doc_max, int32_t offset) {
int32_t *doc_map = (int32_t*)CALLOCATE(doc_max + 1, sizeof(int32_t));
int32_t new_doc_id;
int32_t i;
@@ -66,7 +64,7 @@ DelWriter_generate_doc_map(DeletionsWrit
doc_map[i] = offset + new_doc_id++;
}
}
-
+
return I32Arr_new_steal(doc_map, doc_max + 1);
}
@@ -74,18 +72,16 @@ int32_t DefDelWriter_current_file_format
DefaultDeletionsWriter*
DefDelWriter_new(Schema *schema, Snapshot *snapshot, Segment *segment,
- PolyReader *polyreader)
-{
+ PolyReader *polyreader) {
DefaultDeletionsWriter *self
= (DefaultDeletionsWriter*)VTable_Make_Obj(DEFAULTDELETIONSWRITER);
- return DefDelWriter_init(self, schema, snapshot, segment, polyreader);
+ return DefDelWriter_init(self, schema, snapshot, segment, polyreader);
}
DefaultDeletionsWriter*
-DefDelWriter_init(DefaultDeletionsWriter *self, Schema *schema,
+DefDelWriter_init(DefaultDeletionsWriter *self, Schema *schema,
Snapshot *snapshot, Segment *segment,
- PolyReader *polyreader)
-{
+ PolyReader *polyreader) {
uint32_t i;
uint32_t num_seg_readers;
@@ -102,10 +98,12 @@ DefDelWriter_init(DefaultDeletionsWriter
for (i = 0; i < num_seg_readers; i++) {
SegReader *seg_reader = (SegReader*)VA_Fetch(self->seg_readers, i);
BitVector *bit_vec = BitVec_new(SegReader_Doc_Max(seg_reader));
- DeletionsReader *del_reader = (DeletionsReader*)SegReader_Fetch(
- seg_reader, VTable_Get_Name(DELETIONSREADER));
- Matcher *seg_dels = del_reader
- ? DelReader_Iterator(del_reader) : NULL;
+ DeletionsReader *del_reader
+ = (DeletionsReader*)SegReader_Fetch(
+ seg_reader, VTable_Get_Name(DELETIONSREADER));
+ Matcher *seg_dels = del_reader
+ ? DelReader_Iterator(del_reader)
+ : NULL;
if (seg_dels) {
int32_t del;
@@ -116,15 +114,15 @@ DefDelWriter_init(DefaultDeletionsWriter
}
VA_Store(self->bit_vecs, i, (Obj*)bit_vec);
Hash_Store(self->name_to_tick,
- (Obj*)SegReader_Get_Seg_Name(seg_reader), (Obj*)Int32_new(i));
+ (Obj*)SegReader_Get_Seg_Name(seg_reader),
+ (Obj*)Int32_new(i));
}
return self;
}
void
-DefDelWriter_destroy(DefaultDeletionsWriter *self)
-{
+DefDelWriter_destroy(DefaultDeletionsWriter *self) {
DECREF(self->seg_readers);
DECREF(self->seg_starts);
DECREF(self->bit_vecs);
@@ -135,16 +133,14 @@ DefDelWriter_destroy(DefaultDeletionsWri
}
static CharBuf*
-S_del_filename(DefaultDeletionsWriter *self, SegReader *target_reader)
-{
+S_del_filename(DefaultDeletionsWriter *self, SegReader *target_reader) {
Segment *target_seg = SegReader_Get_Segment(target_reader);
return CB_newf("%o/deletions-%o.bv", Seg_Get_Name(self->segment),
- Seg_Get_Name(target_seg));
+ Seg_Get_Name(target_seg));
}
void
-DefDelWriter_finish(DefaultDeletionsWriter *self)
-{
+DefDelWriter_finish(DefaultDeletionsWriter *self) {
Folder *const folder = self->folder;
uint32_t i, max;
@@ -165,7 +161,8 @@ DefDelWriter_finish(DefaultDeletionsWrit
// Write deletions data and clean up.
OutStream_Write_Bytes(outstream,
- (char*)BitVec_Get_Raw_Bits(deldocs), byte_size);
+ (char*)BitVec_Get_Raw_Bits(deldocs),
+ byte_size);
OutStream_Close(outstream);
DECREF(outstream);
DECREF(filename);
@@ -173,12 +170,11 @@ DefDelWriter_finish(DefaultDeletionsWrit
}
Seg_Store_Metadata_Str(self->segment, "deletions", 9,
- (Obj*)DefDelWriter_Metadata(self));
+ (Obj*)DefDelWriter_Metadata(self));
}
Hash*
-DefDelWriter_metadata(DefaultDeletionsWriter *self)
-{
+DefDelWriter_metadata(DefaultDeletionsWriter *self) {
Hash *const metadata = DataWriter_metadata((DataWriter*)self);
Hash *const files = Hash_new(0);
uint32_t i, max;
@@ -189,10 +185,10 @@ DefDelWriter_metadata(DefaultDeletionsWr
BitVector *deldocs = (BitVector*)VA_Fetch(self->bit_vecs, i);
Segment *segment = SegReader_Get_Segment(seg_reader);
Hash *mini_meta = Hash_new(2);
- Hash_Store_Str(mini_meta, "count", 5,
- (Obj*)CB_newf("%u32", (uint32_t)BitVec_Count(deldocs)) );
- Hash_Store_Str(mini_meta, "filename", 8,
- (Obj*)S_del_filename(self, seg_reader));
+ Hash_Store_Str(mini_meta, "count", 5,
+ (Obj*)CB_newf("%u32", (uint32_t)BitVec_Count(deldocs)));
+ Hash_Store_Str(mini_meta, "filename", 8,
+ (Obj*)S_del_filename(self, seg_reader));
Hash_Store(files, (Obj*)Seg_Get_Name(segment), (Obj*)mini_meta);
}
}
@@ -202,29 +198,28 @@ DefDelWriter_metadata(DefaultDeletionsWr
}
int32_t
-DefDelWriter_format(DefaultDeletionsWriter *self)
-{
+DefDelWriter_format(DefaultDeletionsWriter *self) {
UNUSED_VAR(self);
return DefDelWriter_current_file_format;
}
Matcher*
-DefDelWriter_seg_deletions(DefaultDeletionsWriter *self,
- SegReader *seg_reader)
-{
+DefDelWriter_seg_deletions(DefaultDeletionsWriter *self,
+ SegReader *seg_reader) {
Matcher *deletions = NULL;
Segment *segment = SegReader_Get_Segment(seg_reader);
CharBuf *seg_name = Seg_Get_Name(segment);
- Integer32 *tick_obj = (Integer32*)Hash_Fetch(self->name_to_tick,
- (Obj*)seg_name);
+ Integer32 *tick_obj = (Integer32*)Hash_Fetch(self->name_to_tick,
+ (Obj*)seg_name);
int32_t tick = tick_obj ? Int32_Get_Value(tick_obj) : 0;
- SegReader *candidate = tick_obj
- ? (SegReader*)VA_Fetch(self->seg_readers, tick)
- : NULL;
+ SegReader *candidate = tick_obj
+ ? (SegReader*)VA_Fetch(self->seg_readers, tick)
+ : NULL;
if (tick_obj) {
- DeletionsReader *del_reader = (DeletionsReader*)SegReader_Obtain(
- candidate, VTable_Get_Name(DELETIONSREADER));
+ DeletionsReader *del_reader
+ = (DeletionsReader*)SegReader_Obtain(
+ candidate, VTable_Get_Name(DELETIONSREADER));
if (self->updated[tick] || DelReader_Del_Count(del_reader)) {
BitVector *deldocs = (BitVector*)VA_Fetch(self->bit_vecs, tick);
deletions = (Matcher*)BitVecMatcher_new(deldocs);
@@ -238,29 +233,29 @@ DefDelWriter_seg_deletions(DefaultDeleti
}
int32_t
-DefDelWriter_seg_del_count(DefaultDeletionsWriter *self,
- const CharBuf *seg_name)
-{
- Integer32 *tick
+DefDelWriter_seg_del_count(DefaultDeletionsWriter *self,
+ const CharBuf *seg_name) {
+ Integer32 *tick
= (Integer32*)Hash_Fetch(self->name_to_tick, (Obj*)seg_name);
- BitVector *deldocs = tick
- ? (BitVector*)VA_Fetch(self->bit_vecs, Int32_Get_Value(tick))
- : NULL;
+ BitVector *deldocs = tick
+ ? (BitVector*)VA_Fetch(self->bit_vecs, Int32_Get_Value(tick))
+ : NULL;
return deldocs ? BitVec_Count(deldocs) : 0;
}
void
DefDelWriter_delete_by_term(DefaultDeletionsWriter *self,
- const CharBuf *field, Obj *term)
-{
+ const CharBuf *field, Obj *term) {
uint32_t i, max;
for (i = 0, max = VA_Get_Size(self->seg_readers); i < max; i++) {
SegReader *seg_reader = (SegReader*)VA_Fetch(self->seg_readers, i);
- PostingListReader *plist_reader = (PostingListReader*)SegReader_Fetch(
- seg_reader, VTable_Get_Name(POSTINGLISTREADER));
+ PostingListReader *plist_reader
+ = (PostingListReader*)SegReader_Fetch(
+ seg_reader, VTable_Get_Name(POSTINGLISTREADER));
BitVector *bit_vec = (BitVector*)VA_Fetch(self->bit_vecs, i);
- PostingList *plist = plist_reader
- ? PListReader_Posting_List(plist_reader, field, term) : NULL;
+ PostingList *plist = plist_reader
+ ? PListReader_Posting_List(plist_reader, field, term)
+ : NULL;
int32_t doc_id;
int32_t num_zapped = 0;
@@ -277,10 +272,9 @@ DefDelWriter_delete_by_term(DefaultDelet
}
void
-DefDelWriter_delete_by_query(DefaultDeletionsWriter *self, Query *query)
-{
- Compiler *compiler = Query_Make_Compiler(query,
- (Searcher*)self->searcher, Query_Get_Boost(query));
+DefDelWriter_delete_by_query(DefaultDeletionsWriter *self, Query *query) {
+ Compiler *compiler = Query_Make_Compiler(query, (Searcher*)self->searcher,
+ Query_Get_Boost(query));
uint32_t i, max;
for (i = 0, max = VA_Get_Size(self->seg_readers); i < max; i++) {
@@ -288,7 +282,7 @@ DefDelWriter_delete_by_query(DefaultDele
BitVector *bit_vec = (BitVector*)VA_Fetch(self->bit_vecs, i);
Matcher *matcher = Compiler_Make_Matcher(compiler, seg_reader, false);
- if (matcher) {
+ if (matcher) {
int32_t doc_id;
int32_t num_zapped = 0;
@@ -307,8 +301,7 @@ DefDelWriter_delete_by_query(DefaultDele
}
void
-DefDelWriter_delete_by_doc_id(DefaultDeletionsWriter *self, int32_t doc_id)
-{
+DefDelWriter_delete_by_doc_id(DefaultDeletionsWriter *self, int32_t doc_id) {
uint32_t sub_tick = PolyReader_sub_tick(self->seg_starts, doc_id);
BitVector *bit_vec = (BitVector*)VA_Fetch(self->bit_vecs, sub_tick);
uint32_t offset = I32Arr_Get(self->seg_starts, sub_tick);
@@ -321,8 +314,7 @@ DefDelWriter_delete_by_doc_id(DefaultDel
}
bool_t
-DefDelWriter_updated(DefaultDeletionsWriter *self)
-{
+DefDelWriter_updated(DefaultDeletionsWriter *self) {
uint32_t i, max;
for (i = 0, max = VA_Get_Size(self->seg_readers); i < max; i++) {
if (self->updated[i]) { return true; }
@@ -331,9 +323,8 @@ DefDelWriter_updated(DefaultDeletionsWri
}
void
-DefDelWriter_add_segment(DefaultDeletionsWriter *self, SegReader *reader,
- I32Array *doc_map)
-{
+DefDelWriter_add_segment(DefaultDeletionsWriter *self, SegReader *reader,
+ I32Array *doc_map) {
// This method is a no-op, because the only reason it would be called is
// if we are adding an entire index. If that's the case, all deletes are
// already being applied.
@@ -343,9 +334,8 @@ DefDelWriter_add_segment(DefaultDeletion
}
void
-DefDelWriter_merge_segment(DefaultDeletionsWriter *self, SegReader *reader,
- I32Array *doc_map)
-{
+DefDelWriter_merge_segment(DefaultDeletionsWriter *self, SegReader *reader,
+ I32Array *doc_map) {
UNUSED_VAR(doc_map);
Segment *segment = SegReader_Get_Segment(reader);
Hash *del_meta = (Hash*)Seg_Fetch_Metadata_Str(segment, "deletions", 9);
@@ -357,7 +347,7 @@ DefDelWriter_merge_segment(DefaultDeleti
CharBuf *seg;
Hash *mini_meta;
Hash_Iterate(files);
- while(Hash_Next(files, (Obj**)&seg, (Obj**)&mini_meta)) {
+ while (Hash_Next(files, (Obj**)&seg, (Obj**)&mini_meta)) {
uint32_t i, max;
/* Find the segment the deletions from the SegReader
@@ -367,19 +357,18 @@ DefDelWriter_merge_segment(DefaultDeleti
for (i = 0, max = VA_Get_Size(seg_readers); i < max; i++) {
SegReader *candidate
= (SegReader*)VA_Fetch(seg_readers, i);
- CharBuf *candidate_name
+ CharBuf *candidate_name
= Seg_Get_Name(SegReader_Get_Segment(candidate));
- if (CB_Equals(seg, (Obj*)candidate_name)) {
+ if (CB_Equals(seg, (Obj*)candidate_name)) {
/* If the count hasn't changed, we're about to
* merge away the most recent deletions file
* pointing at this target segment -- so force a
* new file to be written out. */
- int32_t count = (int32_t)Obj_To_I64(
- Hash_Fetch_Str(mini_meta, "count", 5));
- DeletionsReader *del_reader
- = (DeletionsReader*) SegReader_Obtain(candidate,
- VTable_Get_Name(DELETIONSREADER));
+ int32_t count = (int32_t)Obj_To_I64(Hash_Fetch_Str(mini_meta, "count", 5));
+ DeletionsReader *del_reader
+ = (DeletionsReader*)SegReader_Obtain(
+ candidate, VTable_Get_Name(DELETIONSREADER));
if (count == DelReader_Del_Count(del_reader)) {
self->updated[i] = true;
}
Modified: incubator/lucy/trunk/core/Lucy/Index/DeletionsWriter.cfh
URL: http://svn.apache.org/viewvc/incubator/lucy/trunk/core/Lucy/Index/DeletionsWriter.cfh?rev=1098445&r1=1098444&r2=1098445&view=diff
==============================================================================
--- incubator/lucy/trunk/core/Lucy/Index/DeletionsWriter.cfh (original)
+++ incubator/lucy/trunk/core/Lucy/Index/DeletionsWriter.cfh Sun May 1 23:50:24 2011
@@ -34,7 +34,7 @@ parcel Lucy;
abstract class Lucy::Index::DeletionsWriter cnick DelWriter
inherits Lucy::Index::DataWriter {
- inert DeletionsWriter*
+ inert DeletionsWriter*
init(DeletionsWriter *self, Schema *schema, Snapshot *snapshot,
Segment *segment, PolyReader *polyreader);
@@ -70,14 +70,14 @@ abstract class Lucy::Index::DeletionsWri
* position in the array represents the original doc id, and the value
* represents the new doc id. Deleted docs are assigned the value - 0, so
* if you had 4 docs and doc 2 was deleted, the array would have the
- * values... ( 1, 0, 2, 3 ).
+ * values... (1, 0, 2, 3).
*
* @param offset Value which gets added to each valid document id.
* With an offset of 1000, the array in the previous example would be
* { 1001, 0, 1002, 1003 }.
*/
- public incremented I32Array*
- Generate_Doc_Map(DeletionsWriter *self, Matcher *deletions,
+ public incremented I32Array*
+ Generate_Doc_Map(DeletionsWriter *self, Matcher *deletions,
int32_t doc_max, int32_t offset);
/** Return a deletions iterator for the supplied SegReader, which must be
@@ -86,7 +86,7 @@ abstract class Lucy::Index::DeletionsWri
*/
public abstract incremented nullable Matcher*
Seg_Deletions(DeletionsWriter *self, SegReader *seg_reader);
-
+
/** Return the number of deletions for a given segment.
*
* @param seg_name The name of the segment.
@@ -115,16 +115,16 @@ class Lucy::Index::DefaultDeletionsWrite
* @param snapshot A Snapshot.
* @param polyreader An PolyReader.
*/
- inert incremented DefaultDeletionsWriter*
+ inert incremented DefaultDeletionsWriter*
new(Schema *schema, Snapshot *snapshot, Segment *segment,
PolyReader *polyreader);
- inert DefaultDeletionsWriter*
+ inert DefaultDeletionsWriter*
init(DefaultDeletionsWriter *self, Schema *schema, Snapshot *snapshot,
Segment *segment, PolyReader *polyreader);
public void
- Delete_By_Term(DefaultDeletionsWriter *self, const CharBuf *field,
+ Delete_By_Term(DefaultDeletionsWriter *self, const CharBuf *field,
Obj *term);
public void
@@ -143,14 +143,14 @@ class Lucy::Index::DefaultDeletionsWrite
Seg_Del_Count(DefaultDeletionsWriter *self, const CharBuf *seg_name);
public void
- Add_Segment(DefaultDeletionsWriter *self, SegReader *reader,
+ Add_Segment(DefaultDeletionsWriter *self, SegReader *reader,
I32Array *doc_map = NULL);
public void
- Merge_Segment(DefaultDeletionsWriter *self, SegReader *reader,
+ Merge_Segment(DefaultDeletionsWriter *self, SegReader *reader,
I32Array *doc_map = NULL);
- public void
+ public void
Finish(DefaultDeletionsWriter *self);
public int32_t
@@ -159,7 +159,7 @@ class Lucy::Index::DefaultDeletionsWrite
public incremented Hash*
Metadata(DefaultDeletionsWriter *self);
- public void
+ public void
Destroy(DefaultDeletionsWriter *self);
}
Modified: incubator/lucy/trunk/core/Lucy/Index/DocReader.c
URL: http://svn.apache.org/viewvc/incubator/lucy/trunk/core/Lucy/Index/DocReader.c?rev=1098445&r1=1098444&r2=1098445&view=diff
==============================================================================
--- incubator/lucy/trunk/core/Lucy/Index/DocReader.c (original)
+++ incubator/lucy/trunk/core/Lucy/Index/DocReader.c Sun May 1 23:50:24 2011
@@ -30,30 +30,26 @@
#include "Lucy/Store/InStream.h"
DocReader*
-DocReader_init(DocReader *self, Schema *schema, Folder *folder,
- Snapshot *snapshot, VArray *segments, int32_t seg_tick)
-{
- return (DocReader*)DataReader_init((DataReader*)self, schema, folder,
- snapshot, segments, seg_tick);
+DocReader_init(DocReader *self, Schema *schema, Folder *folder,
+ Snapshot *snapshot, VArray *segments, int32_t seg_tick) {
+ return (DocReader*)DataReader_init((DataReader*)self, schema, folder,
+ snapshot, segments, seg_tick);
}
DocReader*
-DocReader_aggregator(DocReader *self, VArray *readers, I32Array *offsets)
-{
+DocReader_aggregator(DocReader *self, VArray *readers, I32Array *offsets) {
UNUSED_VAR(self);
return (DocReader*)PolyDocReader_new(readers, offsets);
}
PolyDocReader*
-PolyDocReader_new(VArray *readers, I32Array *offsets)
-{
+PolyDocReader_new(VArray *readers, I32Array *offsets) {
PolyDocReader *self = (PolyDocReader*)VTable_Make_Obj(POLYDOCREADER);
return PolyDocReader_init(self, readers, offsets);
}
PolyDocReader*
-PolyDocReader_init(PolyDocReader *self, VArray *readers, I32Array *offsets)
-{
+PolyDocReader_init(PolyDocReader *self, VArray *readers, I32Array *offsets) {
uint32_t i, max;
DocReader_init((DocReader*)self, NULL, NULL, NULL, NULL, -1);
for (i = 0, max = VA_Get_Size(readers); i < max; i++) {
@@ -65,8 +61,7 @@ PolyDocReader_init(PolyDocReader *self,
}
void
-PolyDocReader_close(PolyDocReader *self)
-{
+PolyDocReader_close(PolyDocReader *self) {
if (self->readers) {
uint32_t i, max;
for (i = 0, max = VA_Get_Size(self->readers); i < max; i++) {
@@ -78,22 +73,20 @@ PolyDocReader_close(PolyDocReader *self)
}
void
-PolyDocReader_destroy(PolyDocReader *self)
-{
+PolyDocReader_destroy(PolyDocReader *self) {
DECREF(self->readers);
DECREF(self->offsets);
SUPER_DESTROY(self, POLYDOCREADER);
}
HitDoc*
-PolyDocReader_fetch_doc(PolyDocReader *self, int32_t doc_id)
-{
+PolyDocReader_fetch_doc(PolyDocReader *self, int32_t doc_id) {
uint32_t seg_tick = PolyReader_sub_tick(self->offsets, doc_id);
int32_t offset = I32Arr_Get(self->offsets, seg_tick);
DocReader *doc_reader = (DocReader*)VA_Fetch(self->readers, seg_tick);
HitDoc *hit_doc = NULL;
- if (!doc_reader) {
- THROW(ERR, "Invalid doc_id: %i32", doc_id);
+ if (!doc_reader) {
+ THROW(ERR, "Invalid doc_id: %i32", doc_id);
}
else {
hit_doc = DocReader_Fetch_Doc(doc_reader, doc_id - offset);
@@ -103,18 +96,16 @@ PolyDocReader_fetch_doc(PolyDocReader *s
}
DefaultDocReader*
-DefDocReader_new(Schema *schema, Folder *folder, Snapshot *snapshot,
- VArray *segments, int32_t seg_tick)
-{
- DefaultDocReader *self
+DefDocReader_new(Schema *schema, Folder *folder, Snapshot *snapshot,
+ VArray *segments, int32_t seg_tick) {
+ DefaultDocReader *self
= (DefaultDocReader*)VTable_Make_Obj(DEFAULTDOCREADER);
return DefDocReader_init(self, schema, folder, snapshot, segments,
- seg_tick);
+ seg_tick);
}
void
-DefDocReader_close(DefaultDocReader *self)
-{
+DefDocReader_close(DefaultDocReader *self) {
if (self->dat_in != NULL) {
InStream_Close(self->dat_in);
DECREF(self->dat_in);
@@ -128,21 +119,19 @@ DefDocReader_close(DefaultDocReader *sel
}
void
-DefDocReader_destroy(DefaultDocReader *self)
-{
+DefDocReader_destroy(DefaultDocReader *self) {
DECREF(self->ix_in);
DECREF(self->dat_in);
SUPER_DESTROY(self, DEFAULTDOCREADER);
}
DefaultDocReader*
-DefDocReader_init(DefaultDocReader *self, Schema *schema, Folder *folder,
- Snapshot *snapshot, VArray *segments, int32_t seg_tick)
-{
- Hash *metadata;
+DefDocReader_init(DefaultDocReader *self, Schema *schema, Folder *folder,
+ Snapshot *snapshot, VArray *segments, int32_t seg_tick) {
+ Hash *metadata;
Segment *segment;
DocReader_init((DocReader*)self, schema, folder, snapshot, segments,
- seg_tick);
+ seg_tick);
segment = DefDocReader_Get_Segment(self);
metadata = (Hash*)Seg_Fetch_Metadata_Str(segment, "documents", 9);
@@ -158,7 +147,7 @@ DefDocReader_init(DefaultDocReader *self
int64_t format_val = Obj_To_I64(format);
if (format_val < DocWriter_current_file_format) {
THROW(ERR, "Obsolete doc storage format %i64; "
- "Index regeneration is required", format_val);
+ "Index regeneration is required", format_val);
}
else if (format_val != DocWriter_current_file_format) {
THROW(ERR, "Unsupported doc storage format: %i64", format_val);
@@ -187,14 +176,13 @@ DefDocReader_init(DefaultDocReader *self
DECREF(ix_file);
DECREF(dat_file);
}
-
+
return self;
}
void
DefDocReader_read_record(DefaultDocReader *self, ByteBuf *buffer,
- int32_t doc_id)
-{
+ int32_t doc_id) {
int64_t start;
int64_t end;
size_t size;
Modified: incubator/lucy/trunk/core/Lucy/Index/DocReader.cfh
URL: http://svn.apache.org/viewvc/incubator/lucy/trunk/core/Lucy/Index/DocReader.cfh?rev=1098445&r1=1098444&r2=1098445&view=diff
==============================================================================
--- incubator/lucy/trunk/core/Lucy/Index/DocReader.cfh (original)
+++ incubator/lucy/trunk/core/Lucy/Index/DocReader.cfh Sun May 1 23:50:24 2011
@@ -26,7 +26,7 @@ class Lucy::Index::DocReader inherits Lu
inert DocReader*
init(DocReader *self, Schema *schema = NULL, Folder *folder = NULL,
- Snapshot *snapshot = NULL, VArray *segments = NULL,
+ Snapshot *snapshot = NULL, VArray *segments = NULL,
int32_t seg_tick = -1);
/** Retrieve the document identified by <code>doc_id</code>.
@@ -80,7 +80,7 @@ class Lucy::Index::DefaultDocReader cnic
int32_t seg_tick);
inert DefaultDocReader*
- init(DefaultDocReader *self, Schema *schema, Folder *folder,
+ init(DefaultDocReader *self, Schema *schema, Folder *folder,
Snapshot *snapshot, VArray *segments, int32_t seg_tick);
public incremented HitDoc*
Modified: incubator/lucy/trunk/core/Lucy/Index/DocVector.c
URL: http://svn.apache.org/viewvc/incubator/lucy/trunk/core/Lucy/Index/DocVector.c?rev=1098445&r1=1098444&r2=1098445&view=diff
==============================================================================
--- incubator/lucy/trunk/core/Lucy/Index/DocVector.c (original)
+++ incubator/lucy/trunk/core/Lucy/Index/DocVector.c Sun May 1 23:50:24 2011
@@ -22,41 +22,37 @@
#include "Lucy/Store/InStream.h"
#include "Lucy/Store/OutStream.h"
-// Extract a document's compressed TermVector data into ( term_text =>
-// compressed positional data ) pairs.
+// Extract a document's compressed TermVector data into (term_text =>
+// compressed positional data) pairs.
static Hash*
S_extract_tv_cache(ByteBuf *field_buf);
// Pull a TermVector object out from compressed positional data.
static TermVector*
-S_extract_tv_from_tv_buf(const CharBuf *field, const CharBuf *term_text,
+S_extract_tv_from_tv_buf(const CharBuf *field, const CharBuf *term_text,
ByteBuf *tv_buf);
DocVector*
-DocVec_new()
-{
+DocVec_new() {
DocVector *self = (DocVector*)VTable_Make_Obj(DOCVECTOR);
return DocVec_init(self);
}
DocVector*
-DocVec_init(DocVector *self)
-{
+DocVec_init(DocVector *self) {
self->field_bufs = Hash_new(0);
self->field_vectors = Hash_new(0);
return self;
}
void
-DocVec_serialize(DocVector *self, OutStream *outstream)
-{
+DocVec_serialize(DocVector *self, OutStream *outstream) {
Hash_Serialize(self->field_bufs, outstream);
Hash_Serialize(self->field_vectors, outstream);
}
DocVector*
-DocVec_deserialize(DocVector *self, InStream *instream)
-{
+DocVec_deserialize(DocVector *self, InStream *instream) {
self = self ? self : (DocVector*)VTable_Make_Obj(DOCVECTOR);
self->field_bufs = Hash_deserialize(NULL, instream);
self->field_vectors = Hash_deserialize(NULL, instream);
@@ -64,42 +60,37 @@ DocVec_deserialize(DocVector *self, InSt
}
void
-DocVec_destroy(DocVector *self)
-{
+DocVec_destroy(DocVector *self) {
DECREF(self->field_bufs);
DECREF(self->field_vectors);
SUPER_DESTROY(self, DOCVECTOR);
}
void
-DocVec_add_field_buf(DocVector *self, const CharBuf *field,
- ByteBuf *field_buf)
-{
+DocVec_add_field_buf(DocVector *self, const CharBuf *field,
+ ByteBuf *field_buf) {
Hash_Store(self->field_bufs, (Obj*)field, INCREF(field_buf));
}
ByteBuf*
-DocVec_field_buf(DocVector *self, const CharBuf *field)
-{
+DocVec_field_buf(DocVector *self, const CharBuf *field) {
return (ByteBuf*)Hash_Fetch(self->field_bufs, (Obj*)field);
}
VArray*
-DocVec_field_names(DocVector *self)
-{
+DocVec_field_names(DocVector *self) {
return Hash_Keys(self->field_bufs);
}
TermVector*
-DocVec_term_vector(DocVector *self, const CharBuf *field,
- const CharBuf *term_text)
-{
+DocVec_term_vector(DocVector *self, const CharBuf *field,
+ const CharBuf *term_text) {
ByteBuf *tv_buf;
Hash *field_vector = (Hash*)Hash_Fetch(self->field_vectors, (Obj*)field);
-
+
// If no cache hit, try to fill cache.
if (field_vector == NULL) {
- ByteBuf *field_buf
+ ByteBuf *field_buf
= (ByteBuf*)Hash_Fetch(self->field_bufs, (Obj*)field);
// Bail if there's no content or the field isn't highlightable.
@@ -119,20 +110,19 @@ DocVec_term_vector(DocVector *self, cons
}
static Hash*
-S_extract_tv_cache(ByteBuf *field_buf)
-{
- Hash *tv_cache = Hash_new(0);
- char *tv_string = BB_Get_Buf(field_buf);
- int32_t num_terms = NumUtil_decode_c32(&tv_string);
- CharBuf *text = CB_new(0);
- int32_t i;
-
+S_extract_tv_cache(ByteBuf *field_buf) {
+ Hash *tv_cache = Hash_new(0);
+ char *tv_string = BB_Get_Buf(field_buf);
+ int32_t num_terms = NumUtil_decode_c32(&tv_string);
+ CharBuf *text = CB_new(0);
+ int32_t i;
+
// Read the number of highlightable terms in the field.
for (i = 0; i < num_terms; i++) {
- char *bookmark_ptr;
- size_t overlap = NumUtil_decode_c32(&tv_string);
- size_t len = NumUtil_decode_c32(&tv_string);
- int32_t num_positions;
+ char *bookmark_ptr;
+ size_t overlap = NumUtil_decode_c32(&tv_string);
+ size_t len = NumUtil_decode_c32(&tv_string);
+ int32_t num_positions;
// Decompress the term text.
CB_Set_Size(text, overlap);
@@ -142,7 +132,7 @@ S_extract_tv_cache(ByteBuf *field_buf)
// Get positions & offsets string.
bookmark_ptr = tv_string;
num_positions = NumUtil_decode_c32(&tv_string);
- while(num_positions--) {
+ while (num_positions--) {
// Leave nums compressed to save a little mem.
NumUtil_skip_cint(&tv_string);
NumUtil_skip_cint(&tv_string);
@@ -152,7 +142,7 @@ S_extract_tv_cache(ByteBuf *field_buf)
// Store the $text => $posdata pair in the output hash.
Hash_Store(tv_cache, (Obj*)text,
- (Obj*)BB_new_bytes(bookmark_ptr, len));
+ (Obj*)BB_new_bytes(bookmark_ptr, len));
}
DECREF(text);
@@ -160,9 +150,8 @@ S_extract_tv_cache(ByteBuf *field_buf)
}
static TermVector*
-S_extract_tv_from_tv_buf(const CharBuf *field, const CharBuf *term_text,
- ByteBuf *tv_buf)
-{
+S_extract_tv_from_tv_buf(const CharBuf *field, const CharBuf *term_text,
+ ByteBuf *tv_buf) {
TermVector *retval = NULL;
char *posdata = BB_Get_Buf(tv_buf);
char *posdata_end = posdata + BB_Get_Size(tv_buf);