Sql Server Full Text Search - Getting word occurances/location in text? - sql-server-2005

Suppose I have Sql Server (2005/2008) create an index from one of my tables.
I wish to use my own custom search engine (a little more tuned to my needs than Full Text Search).
In order to use it however, I need Sql Server to provide me the word positions and other data required by the search engine.
Is there anyway to query the "index" for this data instead of just getting search results?
Thanks
Roey

No. And if you could, what happens if Microsoft decide to change their internal data structures? Your code would break.
What are you trying to achieve?

You shouldnt rely on SQL servers internal data structures - they are tailored specifically for SQL servers use and aren't acessible for querying anyway.
If you want a fast indexer then you will probably have more success using a pre-written one rather than trying to write your own. Give Lucene.Net a try.

Related

Access as front-end for SQL Server Issues

I have recently converted my Access (2010) database to SQL server (2008) and am attempting to use Access as the front-end. The issues I am having are with sorting and filtering columns within Access. Sorting essentially doesn't work for most columns - does not end up with alphabetically/numerically ordered rows. Also filtering columns will not work consistently either. It will sometimes perform the first filter correctly, but when I change the criteria it will not work and typically shows 0 rows.
I have looked around, but can't seem to find anyone else running into this issue. Are these known bugs with this configuration?
Also, are there any other alternatives similar to Access as a front-end for SQL server? My users require similar functionality that Access provides - filter, sorting, editing data, and they do not want to write any SQL to do this. I would like to not have to create a custom front-end, but I am starting to think this may be my only option.
Thanks!
Warning: I have not used Access much as a front-end to SQL Server.
Came across this article on using a new feature of Access, "Access Data Project", that might be something to look at. It seems to offer a little bit more functionality than the traditional method of linked tables in Access. Allows for a little bit more use of SQL Server T-SQL features than having to depend on Access's native language.

How can I return the Lucene score of my query when using the Neo4J REST server?

I have been able to use the Lucene query syntax so far. Now I need to be able to return the scores and number of hits on nodes by modifying my query line:
GET http://localhost:7474/db/data/index/node/myIndex?query=myKey:myValue
In other words, I do not want to have to create an embedded graph database because I am trying to access the data I have saved in my REST server. Any suggestions on how to return the score and hits?
Could I perhaps create an instance of a class that Lucene offers to do this?
Thanks!
to do this, you will probably have to write a small scoring Neo4j Server unmanaged extension, since this is outside the core REST API, see http://docs.neo4j.org/chunked/snapshot/server-unmanaged-extensions.html for details. As parameters you could take the index, and the scoring parameters and the query.
Would that help?
/peter

Grails app: own query language for data stored in DB and files + full text search (Hibernate Search, Compass etc)

I have an application which stored short descriptive data in DB and lots of related textual data in text files.
I would like to add "advanced search" for DB. I was thinking about adding own query language like JIRA does (Jira Query Language). Then I thought about having full text search across those textual files (less priority).
Wondering which tool will better suite me to implement that faster and simpler.
I most of all I want to provide users with ability to write their own queries instead of using elements to specify search filters.
Thanks
UPD. I save dates in DB and most of varchar fields contain one word strings.
UPD2. Apache Derby is used right now.
Take a look at the Searchable plugin for Grails.
http://www.grails.org/plugin/searchable

How best to develop the sql to support Search functionality in a web application?

Like many web applications (business) the customer wants a form that will search across each data field. The form could have 15-20 different fields where the user can select/enter/input to be used in sql (stored procedure).
These are quite typical requests by the user that most every application has to deal with.
The issue really at hand is how to provide the user with this type of interface/option AND establish fast SQL access. The above fields could span 15 different tables and respective sql statements (usually abstracted to a stored procedure) will have as many joins. The data always has to be brought back to a grid type view as well as some report format (often excel).
I/we are finding these sql statements are slow and hard to optimize as the user can enter 1 or 15 different search criteria.
How should this be done? Looking for suggestions/ideas as to how existing large applications deal with these requirements.
Does it really come down to trying to optimize the sql within the stored procedure?
thx
No, you need to employ a real search engine technology to make fulltext search have good performance. No SQL predicate (e.g. LIKE '%pattern%') is going to be scalable.
You don't identify which brand of RDBMS you're using, but every major brand of RDBMS has their own fulltext search capability:
Microsoft SQL Server: Full-Text Search
Oracle: Oracle Text (formerly ConText)
MySQL: FULLTEXT index (MyISAM only)
PostgreSQL: Text-Search data types and index types
SQLite: Full-Text Search (FTS)
IBM DB2: Text Search
There are also third-party solutions for indexing text, such as:
Apache Lucene / Solr
Sphinx Search
Xapian

SQL query against hardware. Possible?

I need to query the Total Physical Memory, Available Physical Memory and Total Commit Charge of the server. Basically values circled in the picture. Is it possible using SQL Server 2005?
alt text http://www.angryhacker.com/toys/task.png
You can try using the sys.dm_os_sys_info table. Wich returns a miscellaneous set of useful information about the computer, and about the resources available to and consumed by SQL Server.
USE [master];
SELECT * FROM sys.dm_os_sys_info
Bye.
It's not entirely clear what you're asking. You can use a subset of SQL called WQL to get information from WMI, and I'm pretty sure all the data you're asking for is available via WMI, so you should be able to get it all via a SQL query. That SQL query won't be talking to the actual SQL server at the time though, it'll be talking to the WMI provider via the WQL adapter.
I'm not sure about the entire box, but you can use DBCC MemoryStatus to get the consumption of SQL Server itself.
Here's an article about it.
I don't think you really mean SQL as in Database information, it looks to me like you're trying to query the operating system for performance information. Is that right?
You'd need to perform WMI queries for that, instead of SQL queries (which are designed for database access)
Here's an example for getting memory information:
http://www.computerperformance.co.uk/vbscript/wmi_memory.htm#Scenario_-_When_to_use_this_WMI_Memory_Script_
The web site included in the link above has all kinds of samples, and I think you'd be able to get to what you want by researching there.