红宝石人有雪貂.有人知道Python的任何类似举措吗?我们目前正在使用PyLucene,但我想调查转向纯Python搜索.
我知道过去有关于SQL 2005与Lucene.NET的问题,但自2008年问世以来,他们对它进行了很多修改,并且想知道是否有人可以给我优缺点(或链接到文章).
sql-server lucene lucene.net full-text-search sql-server-2008
我有一种情况,我想搜索一个单词.
对于那种情况,从性能的角度来看哪个查询会很好?
Select Col1, Col2 from Table Where Col1 Like '%Search%'
Run Code Online (Sandbox Code Playgroud)
要么
Select Col1, Col2 from Table Where Col1 CONTAINS(Col1,'Search')
Run Code Online (Sandbox Code Playgroud)
?
我正在使用全文,我执行了一个命令,将全文索引添加到多个注释中,并且没有返回错误,然后我做了:
SELECT * FROM products WHERE MATCH(`brand`) AGAINST('Skoda');
Run Code Online (Sandbox Code Playgroud)
哪个是品牌专栏 - 但我得到以下内容:
找不到与列列表匹配的FULLTEXT索引
Eventho,当我的桌子看起来像这样:
FULLTEXT KEY `name` (`name`,`breadcrumb`,`description`,`brand`,`price`,`year`,`km`,`usage`,`type`)
Run Code Online (Sandbox Code Playgroud)
是因为我应该使用name而不是?做搜索?或者可能是错的.
我在SQL Server 2012中工作,并且只想使用CONTAINS()函数,我似乎需要启用全文搜索才能使用它.如何在现有SQL Server 2012安装中启用/安装此功能?我需要的是步骤,因为我还没有找到解决这个问题的步骤.
我很想知道Stack Overflow的标记和搜索是如何构建的,因为它看起来效果很好.
如果我想要执行以下所有操作,那么什么是良好的数据库/搜索模型:
也许以标准化的形式存储标签是有意义的,但也可以作为空格分隔的字符串用于#2,#4和#3的目的.思考?
我听说它说Stack Overflow使用Lucene进行搜索.真的吗?我听过几个关于SQL优化的播客,但没有关于Lucene的内容.如果他们确实使用Lucene,我想知道有多少搜索结果来自Lucene,以及"钻取"标签云是否来自Lucene.
假设我有两列,关键字和内容.我有两个全文索引.我希望关键字中的foo行与内容中的foo行具有更多相关性.我需要做些什么才能使MySQL对关键字中的匹配项进行加权?
我正在使用"匹配"语法.
解:
能够以下列方式完成这项工作:
SELECT *,
CASE when Keywords like '%watermelon%' then 1 else 0 END as keywordmatch,
CASE when Content like '%watermelon%' then 1 else 0 END as contentmatch,
MATCH (Title, Keywords, Content) AGAINST ('watermelon') AS relevance
FROM about_data
WHERE MATCH(Title, Keywords, Content) AGAINST ('watermelon' IN BOOLEAN MODE)
HAVING relevance > 0
ORDER by keywordmatch desc, contentmatch desc, relevance desc
Run Code Online (Sandbox Code Playgroud) 我正在尝试构建像搜索我的软件的Facebook.
我想查询表客户.
我已经设置了一个FULLTEXT索引并尝试了下一个查询
SELECT * FROM Customer where CONTAINS(*,'*ann*')
Run Code Online (Sandbox Code Playgroud)
该查询确实返回所有名为Ann的客户,但它并未返回所有客户名称Anne.
有没有办法使用FTS在SQL Server 2008上创建前缀搜索?
我有一个数组"键"的索引,我用它来为我的应用程序提供全文功能.
随着2.4.3的发布,我想使用"text"索引类型.我在我的数组"keys"上保证了一个"文本"索引类型,它似乎工作速度超快(比我的旧关键字全文方法更快).
问题是,我的应用程序假设字段是包容性的(AND).默认情况下,文本搜索OR我的参数.
有没有人知道一种包含文本搜索的方法?
例如:
db.supplies.runCommand("text", {search:"printer ink"})
Run Code Online (Sandbox Code Playgroud)
应该使用打印机和墨水返回结果,而不是使用打印机或墨水的所有结果.
我有一个在SQL2005上运行良好的查询,但将数据库移动到SQL2008给了我标题的错误.
问题的代码是使用空参数调用CONTAINS,CONTAINSTABLE或FREETEXT.但是当我有这样的值时,我只想调用或加入
where (@search_term = '' or (FREETEXT(lst.search_text, @search_term)))
Run Code Online (Sandbox Code Playgroud)
要么
left join containstable (listing_search_text, search_text, @search_term) ftb on l.listing_id = ftb.[key]
and len(@search_term) > 0
Run Code Online (Sandbox Code Playgroud)
但是我找不到任何解决方法来处理SQL2008.有任何想法吗?
我知道我可以做动态SQL或者有一个带有两种不同情况的if语句(选择FT连接,选择没有FT连接.任何更好的解决方法,不需要这样做?
full-text-search ×10
sql-server ×4
lucene ×2
mysql ×2
database ×1
ferret ×1
indexing ×1
lucene.net ×1
mongodb ×1
performance ×1
php ×1
python ×1
relevance ×1
search ×1
sql ×1
sql-like ×1
tag-cloud ×1
tags ×1