Discussion:
Multiple catalogs search with OLEDB driver
(too old to reply)
Larry Brown
2006-11-09 17:56:31 UTC
Permalink
I saw it was possible to query multiple catalogs with Index Server, even on
remote servers. For example, doing this:
SELECT DocAuthor, size, DocTitle, write
FROM (TABLE MyFirstserver.MyCatalog..SCOPE('"/Specs"')
UNION ALL TABLE MySecondServer.OtherCatalog..SCOPE('"/OtherSpecs"'))
WHERE CONTAINS(Contents, '"content search"')
But when I do a query that searches on several catalogs, on different
servers, how will I know where the documents I get in my result list are
located?

There is no property for getting the server name, nor the catalog name, nor
even the scope name. vpath and path are local to each server.

So who should I proceed to get a link to each of my documents in my result
list ?

Many thanks for any help!
Larry Brown
2006-11-10 10:13:25 UTC
Permalink
Juste tu precise that my post if different from the next one. To simplify:
when I do a query like

SELECT DocAuthor, size, DocTitle, write
FROM (TABLE MyFirstserver.MyCatalog..SCOPE('"/Specs"')
UNION ALL TABLE MySecondServer.OtherCatalog..SCOPE('"/OtherSpecs"'))
WHERE CONTAINS(Contents, '"content search"')

how will I be able to put a link to my documents in my result list ? The
only idea I have for now is putting the machine name somewhere in the vpath
of each document on each machine (when setting up my scopes or indexed
virtual directories), and parsing the vpath at the search result display.
Which is not very handful...
Post by Larry Brown
I saw it was possible to query multiple catalogs with Index Server, even on
SELECT DocAuthor, size, DocTitle, write
FROM (TABLE MyFirstserver.MyCatalog..SCOPE('"/Specs"')
UNION ALL TABLE
MySecondServer.OtherCatalog..SCOPE('"/OtherSpecs"'))
WHERE CONTAINS(Contents, '"content search"')
But when I do a query that searches on several catalogs, on different
servers, how will I know where the documents I get in my result list are
located?
There is no property for getting the server name, nor the catalog name,
nor even the scope name. vpath and path are local to each server.
So who should I proceed to get a link to each of my documents in my result
list ?
Many thanks for any help!
Hilary Cotter
2006-11-10 22:21:55 UTC
Permalink
Create a new catalog on each server. Bind it to the new web site. Place your
search page in each web site (making sure that it points to this new
catalog), and then, in your browser, type in your FQDN, for example:
"http://www.microsoft.com/SearchPage.asp." where "microsoft.com" is your
FQDN web site name, and "SearchPage.asp" is your Search Page.

IS will start indexing your content and storing the documents it indexes in
the FQDN format. Search results will appear in the FQDN format.

--
Hilary Cotter
Director of Text Mining and Database Strategy
RelevantNOISE.Com - Dedicated to mining blogs for business intelligence.


This posting is my own and doesn't necessarily represent RelevantNoise's
positions, strategies or opinions.

Looking for a SQL Server replication book?
http://www.nwsu.com/0974973602.html

Looking for a FAQ on Indexing Services/SQL FTS
http://www.indexserverfaq.com
Post by Larry Brown
I saw it was possible to query multiple catalogs with Index Server, even on
SELECT DocAuthor, size, DocTitle, write
FROM (TABLE MyFirstserver.MyCatalog..SCOPE('"/Specs"')
UNION ALL TABLE
MySecondServer.OtherCatalog..SCOPE('"/OtherSpecs"'))
WHERE CONTAINS(Contents, '"content search"')
But when I do a query that searches on several catalogs, on different
servers, how will I know where the documents I get in my result list are
located?
There is no property for getting the server name, nor the catalog name,
nor even the scope name. vpath and path are local to each server.
So who should I proceed to get a link to each of my documents in my result
list ?
Many thanks for any help!
Jerry C
2006-11-13 14:10:02 UTC
Permalink
Hilary,

Thank you for your reply. I still can't get the machine name to be in the
result set. Without the machine name I can't get the file.
--
Jerry
Post by Hilary Cotter
Create a new catalog on each server. Bind it to the new web site. Place your
search page in each web site (making sure that it points to this new
"http://www.microsoft.com/SearchPage.asp." where "microsoft.com" is your
FQDN web site name, and "SearchPage.asp" is your Search Page.
IS will start indexing your content and storing the documents it indexes in
the FQDN format. Search results will appear in the FQDN format.
--
Hilary Cotter
Director of Text Mining and Database Strategy
RelevantNOISE.Com - Dedicated to mining blogs for business intelligence.
This posting is my own and doesn't necessarily represent RelevantNoise's
positions, strategies or opinions.
Looking for a SQL Server replication book?
http://www.nwsu.com/0974973602.html
Looking for a FAQ on Indexing Services/SQL FTS
http://www.indexserverfaq.com
Post by Larry Brown
I saw it was possible to query multiple catalogs with Index Server, even on
SELECT DocAuthor, size, DocTitle, write
FROM (TABLE MyFirstserver.MyCatalog..SCOPE('"/Specs"')
UNION ALL TABLE
MySecondServer.OtherCatalog..SCOPE('"/OtherSpecs"'))
WHERE CONTAINS(Contents, '"content search"')
But when I do a query that searches on several catalogs, on different
servers, how will I know where the documents I get in my result list are
located?
There is no property for getting the server name, nor the catalog name,
nor even the scope name. vpath and path are local to each server.
So who should I proceed to get a link to each of my documents in my result
list ?
Many thanks for any help!
Larry Brown
2006-11-13 18:10:36 UTC
Permalink
So you mean there is not way to have one single page calling this query

SELECT DocAuthor, size, DocTitle, write
FROM (TABLE MyFirstserver.MyCatalog..SCOPE('"/Specs"')
UNION ALL TABLE MySecondServer.OtherCatalog..SCOPE('"/OtherSpecs"'))
WHERE CONTAINS(Contents, '"content search"')

?

Then there is somthing I don't understand: why is it possible to query
several catalogs at a time in one single query, if we can't get a link to
the files whose name is actually returned !

It is really a pity, because on one hand I could put my documents on
different machines, so that the load of indexing is shared by each of them,
and get in one single recordset the list of all my documents, which allows
sorting and other cool things. But then, on the other hand, in my result
list I just can't get any link to each document, so I can't open them nor
even know where they are located. I'm really disappointed because load is a
pretty critical point for me, and I thought I could do many things with the
Index Server OLE DB driver and .NET.

So my only solution is to put some information into each document path that
I will parse when displaying my result list, but this is not perfect. Unless
anybody has another "magic" idea?

Thanks anyway for your answer, I really appreciate it!
Post by Hilary Cotter
Create a new catalog on each server. Bind it to the new web site. Place
your search page in each web site (making sure that it points to this new
"http://www.microsoft.com/SearchPage.asp." where "microsoft.com" is your
FQDN web site name, and "SearchPage.asp" is your Search Page.
IS will start indexing your content and storing the documents it indexes
in the FQDN format. Search results will appear in the FQDN format.
--
Hilary Cotter
Director of Text Mining and Database Strategy
RelevantNOISE.Com - Dedicated to mining blogs for business intelligence.
This posting is my own and doesn't necessarily represent RelevantNoise's
positions, strategies or opinions.
Looking for a SQL Server replication book?
http://www.nwsu.com/0974973602.html
Looking for a FAQ on Indexing Services/SQL FTS
http://www.indexserverfaq.com
Post by Larry Brown
I saw it was possible to query multiple catalogs with Index Server, even
SELECT DocAuthor, size, DocTitle, write
FROM (TABLE MyFirstserver.MyCatalog..SCOPE('"/Specs"')
UNION ALL TABLE
MySecondServer.OtherCatalog..SCOPE('"/OtherSpecs"'))
WHERE CONTAINS(Contents, '"content search"')
But when I do a query that searches on several catalogs, on different
servers, how will I know where the documents I get in my result list are
located?
There is no property for getting the server name, nor the catalog name,
nor even the scope name. vpath and path are local to each server.
So who should I proceed to get a link to each of my documents in my
result list ?
Many thanks for any help!
Hilary Cotter
2006-11-14 12:52:04 UTC
Permalink
It is possible. I am not sure why you can't get the fqdn in the catalog. It
worked for me. You may need to give everyone read rights to the relevant
registry settings.
--
Hilary Cotter

Looking for a SQL Server replication book?
http://www.nwsu.com/0974973602.html

Looking for a FAQ on Indexing Services/SQL FTS
http://www.indexserverfaq.com
Post by Larry Brown
So you mean there is not way to have one single page calling this query
SELECT DocAuthor, size, DocTitle, write
FROM (TABLE MyFirstserver.MyCatalog..SCOPE('"/Specs"')
UNION ALL TABLE
MySecondServer.OtherCatalog..SCOPE('"/OtherSpecs"'))
WHERE CONTAINS(Contents, '"content search"')
?
Then there is somthing I don't understand: why is it possible to query
several catalogs at a time in one single query, if we can't get a link to
the files whose name is actually returned !
It is really a pity, because on one hand I could put my documents on
different machines, so that the load of indexing is shared by each of
them, and get in one single recordset the list of all my documents, which
allows sorting and other cool things. But then, on the other hand, in my
result list I just can't get any link to each document, so I can't open
them nor even know where they are located. I'm really disappointed because
load is a pretty critical point for me, and I thought I could do many
things with the Index Server OLE DB driver and .NET.
So my only solution is to put some information into each document path
that I will parse when displaying my result list, but this is not perfect.
Unless anybody has another "magic" idea?
Thanks anyway for your answer, I really appreciate it!
Post by Hilary Cotter
Create a new catalog on each server. Bind it to the new web site. Place
your search page in each web site (making sure that it points to this new
"http://www.microsoft.com/SearchPage.asp." where "microsoft.com" is your
FQDN web site name, and "SearchPage.asp" is your Search Page.
IS will start indexing your content and storing the documents it indexes
in the FQDN format. Search results will appear in the FQDN format.
--
Hilary Cotter
Director of Text Mining and Database Strategy
RelevantNOISE.Com - Dedicated to mining blogs for business intelligence.
This posting is my own and doesn't necessarily represent RelevantNoise's
positions, strategies or opinions.
Looking for a SQL Server replication book?
http://www.nwsu.com/0974973602.html
Looking for a FAQ on Indexing Services/SQL FTS
http://www.indexserverfaq.com
Post by Larry Brown
I saw it was possible to query multiple catalogs with Index Server, even
SELECT DocAuthor, size, DocTitle, write
FROM (TABLE MyFirstserver.MyCatalog..SCOPE('"/Specs"')
UNION ALL TABLE
MySecondServer.OtherCatalog..SCOPE('"/OtherSpecs"'))
WHERE CONTAINS(Contents, '"content search"')
But when I do a query that searches on several catalogs, on different
servers, how will I know where the documents I get in my result list are
located?
There is no property for getting the server name, nor the catalog name,
nor even the scope name. vpath and path are local to each server.
So who should I proceed to get a link to each of my documents in my
result list ?
Many thanks for any help!
Loading...