On Thu, 3 Aug 1995 11:00:34 -0400, Roger Myers <[log in to unmask]> said: > Hi everyone, > > I like the way LISTSERV searches mailing list archives. > I am wondering if I can create other files for my list which LISTSERV > can similarly search? > If so, then how do I go about that and where would I find a description > of how to do it? > > I might for example like to place a document in my archives which > contains book reviews. It would be very convenient then for people > to have LISTSERV select reviews of books from a particular author > or containing specific words in them instead of retrieving the entire > BOOK REVIEWS file and searching it themselves. > Is this posible with LISTSERV? Yes, it's possible with LISTSERV, but needs a lot of work from your side, and a lot of explanation from my side.. :-) Basically it's done by creating a *dummy* listserv mailing list with no subscriptions ("Subscription= Closed"), and with a single notebook file ("Notebook= Yes,<where>,Single,Public"). Let me put a fancy example first, and then give explanation based on it. Suppose that you want to create a listserv database called: BOOKREVU with items (specifically called "documents") containing a Book Name (Title), Author, Publisher, ISBN, Review, and other information. First, you will create the file 'BOOKREVU LIST' containing the following lines, and store it on LISTSERV: * * BOOKREVU - "Book Reviews" Searchable Database * * PW= <list-password> * List-ID= BOOKREVU * Review= Public * Subscription= Closed * Send= Owner * Files= No * Reply-To= None,Ignore * Sender= None * Confidential= No * Validate= Yes * X-Tags= No * Stats= None * Ack= No * Notebook= Yes,<where>,Single,Public * Errors-To= Owner * Owner= userid@siteid (Owner's Name) * * BOOKREVU is a dummy list to allow searching of the "Book Reviews" * Database. You can search it using the DATABASE facilities of * LISTSERV. For more info send LISTSERV the command INFO DATABASE. * Notice that with the above settings, the database is public, and can be seen from any site, using the "DATABASE LIST" command, and searched using "DATABASE SELECT". If you wish the database be accessed just from some certain sites, and be hidden from all others, change the following keywords into: * Review= Service * Confidential= Service * Notebook= Yes,<where>,Single,Service * Service= site1,site2,site3,... In this case, anyone from a site not included in the "Service" area will not see the BOOKREVU database when sending the "DATABASE LIST" command. The setting "Validate= Yes" is crucial to the integrity of the database, so that no "hacker" can subscribe himself to the list, and then corrupt your database file with some junk mail. Second, create the files 'BOOKREVU FILEID' and 'BOOKREVU FILELIST' as usual, where the "FILEID" file will have only one line containing the character "1" (without the quotes). And the "FILELIST" file, after its creation will just hold a single file, which is 'BOOKREVU NOTEBOOK' (instead of the regular monthly or weekly LOG files). Notice that creating the files 'BOOKREVU LIST', 'BOOKREVU FILEID', and 'BOOKREVU FILELIST' requires LISTSERV Owner or Postmaster privilages. So if you don't have such privilages, you'll have to negotiate creating these file with your site's postmasters. Another thing to consider is the disk space occupied by the 'BOOKREVU NOTEBOOK' file. it will probably take a lot of disk space, so you have also to discuss this matter with your postmasters. 'BOOKREVU NOTEBOOK' will be the file containing all the book information and reviews. You have to construct it to be VERY similar to the LOG files generated by LISTSERV when archiving e-mail messages sent to lists, so that your database can be of the same type as the standard LISTSERV "NOTEBOOK" database type, and all the rules of searching this type can be applied to yours with no errors. As regular LOG files, 'BOOKREVU NOTEBOOK' is divided into units (called "items" or "documents"). Each document is separated from the others by a line of 73 equal "=" signs. A document consists of two inner parts (called "document portions"): Header (HDR) and Body (Text), separated by an empty line. The header should contain at least the following three fields: Date: From: Subject: In the "Date:" field, you can put either the date at which the book was published, or the document creation date or date of the last change made to it. I prefer the document creation/change date, since it would be very useful if someone is accessing the database regularly and wants an index of the new documents added to the database since his/her last access. You can put the publishing date of the book in the Body rather than in the Header. The "Subject:" field can contain the book title, and the "From:" field can contain the author's name. There are other fields usually found in the regular list LOG files, like the "Reply-To:" and "Sender:" fields, but they won't be needed in this example (BOOKREVU), and can be omitted, that's why I put the following two keyword settings in the header of the BOOKREVU list: * Reply-To= None,Ignore * Sender= None The other portion (the body or text) will contain all the other info about the book, arranged according to your own special format. Here is a little sample 'BOOKREVU NOTEBOOK' file, consisting of two documents: +---------------------------------------------------------------------------+ | ========================================================================= | | Date: Sat, 05 Aug 1995, 16:02:34 GMT | | From: Ed Krol | | Subject: The Whole Internet User's Guide & Catalog | | | | Category: Networks | | Title: The Whole Internet User's Guide & Catalog | | Author: Krol, Ed | | Publisher: O'Reilly & Associates, Inc. | | 103 Morris Street, Suite A, Sebastopol, CA 95472, U.S.A. | | Phone: (707) 829,0515 | | Fax: (707) 829,0104 | | E-mail: [log in to unmask] | | ISBN: 1-56592-025-2 | | Edition: First 1992 | | #Pages: 380 | | Price: $24.95 | | Review: This book will help you unlock the Internet's resources. | | It is a complete user's guide to the Internet, covering | | everything from the basics, like electronic mail and news | | groups, to the newest developments. A large part of the | | book tells you how to find the resources you want. This | | is the first book to cover the Internet's new "research | | librarians": Gopher, WAIS, and the World-Wide Web. There | | are important new tools that help you search the Net's | | resources by topic. | | ========================================================================= | | Date: Sat, 05 Aug 1995, 16:10:52 GMT | | From: Jim Kyle | | Subject: Windows 3.1 Memory Management | | | | Category: Computing | | Title: Windows 3.1 Memory Management | | Author: Kyle, Jim | | Publisher: Addison-Wesley Publishing Company | | De Lairessestraat 90, 1071 PJ Amsterdam, The Netherlands | | ISBN: 0-201-63233-0 | | Edition: First 1992 | | #Pages: 208 | | Price: $19.95 | | Review: This book explains how to install and configure Windows 3.1 | | to your best advantage with a guided tour through the mine- | | field of memeory acronyms (EMS, XMS, HMA, and UMB), clear | | explanations of the differences between the various types | | of memory Windows uses, memory management software evalu- | | ations, and strategic tips on how to configure the desktop | | to optimize memory usage. | +---------------------------------------------------------------------------+ Each time you have some new documents to add to the database, you can GET the 'BOOKREVU NOTEBOOK' file, add the new documents at the end of the file, with the "Date:" field set to the date of your addition, and then PUT the file back on LISTSERV. In addtion to adding new documents, you can, if you wish, edit some of the existing documents, updating their contents, but you also have to update their "Date:" fields to reflect the change. You can also delete documents from the database. In all cases, after putting the file back on LISTSERV, issue the command "DATABASE REFRESH BOOKREVU", just as a safety procedure, to make sure that the database is refreshed. The BOOKREVU database can be searched normally just as any other LISTSERV database of the "NOTEBOOK" type, having available the following keywords: # Date Time #Recs Sender Subject Header (or HDR) Body (or Text) All So, for example, to search for "Krol" in the authors' names, you would send the following Job to LISTSERV: // JOB Echo=No Database Search DD=Orders //Orders DD * Select * in BOOKREVU where Sender contains 'Krol' Index Print All // EOJ Here I've used the "Sender" keyword to search for authors' names, since the "Sender" keyword reflects the "From:" field in the documents, which we agreed that it will contain author's name. In the same way, you can search for book titles using the "Subject" keyword. Although you CANNOT use the field names which are in the body of the documents (e.g. "Category", "Title", "Author", "Publisher", ISBN, etc.) as keywords, but you can go around this by specifying the field name as part of the search string. For example, to search for "Addison" in the "Publisher:" fields, you can send the following Job to LISTSERV: // JOB Echo=No Database Search DD=Orders //Orders DD * Select 'Publisher: Addison' in BOOKREVU Index // EOJ Notice that this won't work if there's more than one blank between the field name (e.g. "Publisher:") and the actual data (e.g. "Addison"). That's why you can see in the sample "BOOKREVU NOTEBOOK" thet I've indented all the field names, so that there's always only one blank between the semicolon ":" and the actual data. Well, that's all I can say about creating your own LISTSERV databases. If you wish to see a working example of the above explanation, check the INTGROUP database on [log in to unmask] It's a database of all Internet SRI-NIC Interest Groups. Send the following Job to [log in to unmask] to see the keyword settings of the dummy INTGROUP list, and the output of the INDEX and PRINT commands when searching, for example, for the HELP-NET list in the INTGROUP database. // JOB Echo=No,F=Mail Review INTGROUP (Short Database Search DD=Orders //Orders DD * Select 'HELP-NET' in INTGROUP Index Print All // EOJ By the way, one more thing, there's a mailing list dedicated to the discussions of LISTSERV Database Search Capabilities, which is LDBASE-L on [log in to unmask] For more technical questions, you can send them there.. Regards, Bassem *----=----=----=----=----=----=----=----=----=----=----=----=----=----* | Bassem Fanari | Bitnet: [log in to unmask] | | Dept. of Computer Sc. | Internet: [log in to unmask] | | King Abdul-Aziz Univ. | Snail: P.O.Box 20882, Jeddah 21465, S.A. | | Jeddah, Saudi Arabia | Voice: (966-2) 670-3484 | |---- ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- ----| | Life is like a clock, you can work constantly and be right all | | the time, or not work at all and be right at least twice a day! | *----=----=----=----=----=----=----=----=----=----=----=----=----=----*