Ejemplo n.º 1
0
        public override ResponseMessage Execute(RequestMessage raw_request)
        {
            RemoteIndexerRequest remote_request = (RemoteIndexerRequest)raw_request;

            IndexHelperTool.ReportActivity();

            // Find the appropriate driver for this request.
            LuceneIndexingDriver indexer;

            lock (indexer_table) {
                indexer = (LuceneIndexingDriver)indexer_table [remote_request.RemoteIndexName];

                if (indexer == null)
                {
                    indexer = new LuceneIndexingDriver(remote_request.RemoteIndexName,
                                                       remote_request.RemoteIndexMinorVersion);
                    indexer.DisableTextCache = IndexHelperTool.DisableTextCache;

                    indexer_table [remote_request.RemoteIndexName] = indexer;

                    indexer.FileFilterNotifier += delegate(Uri display_uri, Uri content_uri, Filter filter) {
                        IndexHelperTool.ReportActivity();
                        IndexHelperTool.CurrentDisplayUri = display_uri;
                        IndexHelperTool.CurrentContentUri = content_uri;
                        IndexHelperTool.CurrentFilter     = filter;
                    };
                }
            }

            IndexerReceipt [] receipts = null;
            int item_count             = 0;

            try {
                if (remote_request.Request != null)                 // If we just want the item count, this will be null
                {
                    receipts = indexer.Flush(remote_request.Request);
                }
                item_count = indexer.GetItemCount();
            } catch (Exception e) {
                // Send error response
                ++Count;
                return(new ErrorResponse(e));
            }

            // Construct a response containing the item count and
            // the receipts produced by the actual indexing.
            RemoteIndexerResponse response = new RemoteIndexerResponse();

            response.ItemCount = item_count;
            response.Receipts  = receipts;

            ++Count;

            IndexHelperTool.ReportActivity();

            return(response);
        }
Ejemplo n.º 2
0
    static void Main(string[] args)
    {
        if (args.Length != 2)
        {
            Console.WriteLine("Usage: beagle-master-delete-button index-name uri-to-delete");
            return;
        }

        string index_name = args [0];

        LuceneQueryingDriver driver = new LuceneQueryingDriver(index_name, -1, true);

        Uri uri           = new Uri(args [1], false);
        Uri uri_to_delete = RemapUri(driver, uri);

        LuceneIndexingDriver indexer = new LuceneIndexingDriver(index_name, false);

        Indexable indexable = new Indexable(uri_to_delete);

        indexable.Type = IndexableType.Remove;

        IndexerRequest request = new IndexerRequest();

        request.Add(indexable);

        IndexerReceipt [] receipts = indexer.Flush(request);
        if (receipts == null || receipts.Length == 0)
        {
            Console.WriteLine("Uri {0} not found in {1}",
                              uri, index_name);
            return;
        }

        IndexerRemovedReceipt r = receipts [0] as IndexerRemovedReceipt;

        if (r == null || r.NumRemoved == 0)
        {
            Console.WriteLine("Uri {0} not found in {1}",
                              uri, index_name);
            return;
        }

        Console.WriteLine("Uri {0} deleted", uri);
    }