Honor position attribute, i.e. allow first-in-field search. To
[idzebra-moved-to-github.git] / index / zebraapi.c
index 38bc751..84c8e7a 100644 (file)
@@ -1,4 +1,4 @@
-/* $Id: zebraapi.c,v 1.222 2006-06-13 12:02:12 adam Exp $
+/* $Id: zebraapi.c,v 1.226 2006-08-29 08:27:59 adam Exp $
    Copyright (C) 1995-2006
    Index Data ApS
 
@@ -15,9 +15,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
+
 */
 
 #include <assert.h>
@@ -140,6 +140,7 @@ ZebraHandle zebra_open(ZebraService zs, Res res)
 
     zh->shadow_enable = 1;
     zh->m_staticrank = 0;
+    zh->m_segment_indexing = 0;
 
     default_encoding = res_get_def(zh->session_res, "encoding", "ISO-8859-1");
 
@@ -181,6 +182,8 @@ ZebraService zebra_start_res (const char *configName, Res def_res, Res over_res)
 {
     Res res;
 
+    zebra_flock_init();
+
     if (!log_level_initialized)
     {
         log_level = yaz_log_module_level("zebraapi");
@@ -765,6 +768,15 @@ static void zebra_select_register (ZebraHandle zh, const char *new_reg)
        if (res_get_int(zh->res, "staticrank", &zh->m_staticrank) == ZEBRA_OK)
            yaz_log(YLOG_LOG, "static rank set and is %d", zh->m_staticrank);
     }
+    if (zh->res)
+    {
+       if (res_get_int(zh->res, "segment", &zh->m_segment_indexing) == 
+            ZEBRA_OK)
+        {
+           yaz_log(YLOG_DEBUG, "segment indexing set and is %d",
+                    zh->m_segment_indexing);
+        }
+    }
 }
 
 void map_basenames_func (void *vp, const char *name, const char *value)
@@ -2019,7 +2031,7 @@ static ZEBRA_RES zebra_commit_ex(ZebraHandle zh, int clean_only)
 
        zebra_lock_w(zh->lock_shadow);
         bf_commitClean (bfs, rval);
-       zebra_unlock (zh->lock_normal);
+       zebra_unlock (zh->lock_shadow);
     }
     else
     {