标签: full-text-search

Android中的全文搜索示例

我很难理解如何在Android上使用全文搜索(FTS).我已经阅读了关于FTS3和FTS4扩展SQLite文档.而且我知道可以在Android上进行.但是,我很难找到任何我能理解的例子.

基本数据库模型

SQLite数据库表(已命名example_table)有4列.但是,只有一列(已命名text_column)需要为全文搜索编制索引.每行text_column包含长度从0到1000字不等的文本.总行数大于10,000.

  • 您将如何设置表和/或FTS虚拟表?
  • 你将如何执行FTS查询text_column

补充说明:

  • 因为只需要索引一列,所以仅使用FTS表(和删除example_table)对于非FTS查询来说效率低下.
  • 对于这样大的表,存储text_columnFTS表中的重复条目是不合需要的.这篇文章建议使用外部内容表.
  • 外部内容表使用FTS4,但在Android API 11之前不支持 FTS4 .答案可以假设API> = 11,但是评论支持较低版本的选项会很有帮助.
  • 更改原始表中的数据不会自动更新FTS表(反之亦然).在这个基本示例中,不需要在答案中包含触发器,但仍然会有所帮助.

sqlite android full-text-search

85
推荐指数
1
解决办法
3万
查看次数

无法在表或索引视图上使用CONTAINS或FREETEXT谓词,因为它不是全文索引的

我在SQL Server 2008 R2数据库中收到以下错误:

不能在表或索引视图'tblArmy'上使用CONTAINSFREETEXT谓词,因为它不是全文索引的.

sql t-sql sql-server full-text-search sql-server-2008

77
推荐指数
3
解决办法
14万
查看次数

是否可以使用LINQ的全文搜索(FTS)?

我想知道是否可以使用.NET Framework 3.5将FTS与LINQ一起使用.我正在搜索我没有找到任何有用的文档.

有没有人有这方面的经验?

linq sql-server full-text-search

75
推荐指数
5
解决办法
2万
查看次数

MySQL match()对() - 按相关性和列顺序排序?

好的,我正在尝试在多个列中进行全文搜索,这样简单:

SELECT * FROM pages WHERE MATCH(head, body) AGAINST('some words' IN BOOLEAN MODE)
Run Code Online (Sandbox Code Playgroud)

现在我想按相关性排序(找到多少单词?),我可以用这样的东西做:

SELECT * , MATCH (head, body) AGAINST ('some words' IN BOOLEAN MODE) AS relevance 
FROM pages
WHERE MATCH (head, body) AGAINST ('some words' IN BOOLEAN MODE)
ORDER BY relevance
Run Code Online (Sandbox Code Playgroud)

现在这里出现了我迷失的部分,我想优先考虑head专栏中的相关性.

我想我可以创建两个相关列,一个用于head一个body,一个用于,但在那时我将在表中进行三次相同的搜索,并且对于我正在制作此功能,性能很重要,因为查询将连接并与其他表匹配.

所以,我的主要问题是,是否有更快的方法来搜索相关性并确定某些列的优先级?(作为奖励甚至可能使相关计数在列中出现的次数?)

任何建议或建议都会很棒.

注意:我将在LAMP服务器上运行它.(本地测试中的WAMP)

mysql full-text-search

73
推荐指数
4
解决办法
12万
查看次数

Solr中"multiValued"字段类型的用途是什么?

我是Apache Solr的新手.即使在阅读了文档部分之后,我发现很难清楚地理解multiValued字段类型属性的功能和用法.

内部Solr做什么/处理/处理标记为multiValued的字段 ?

是什么在索引中的Solr的字段之间的区别是多值和那些没有?

有人可以用一些好的例子解释一下吗?

Doc说:

多值= TRUE | FALSE

如果此字段可能包含每个文档的多个值,即它是否可以在文档中多次出现,则为True

indexing solr full-text-search multivalue

72
推荐指数
3
解决办法
7万
查看次数

在MySQL中搜索"全字匹配"

我想写一个SQL查询,在文本字段中搜索关键字,但只有当它是"全字匹配"时(例如,当我搜索"rid"时,它不应该匹配"arid",但它应该匹配"一个摆脱".

我正在使用MySQL.

幸运的是,性能在这个应用程序中并不重要,数据库大小和字符串大小都很小,但我更喜欢在SQL中而不是在PHP中驱动它.

mysql sql full-text-search

71
推荐指数
3
解决办法
6万
查看次数

Google协作平台API全文搜索不适用于非西方语言

在我的JavaEE应用程序中,我使用基于Atom的Google Sites API从非公开的Google站点检索内容.从本质上讲,我们将Google网站用作轻量级CMS,并且在应用程序中我使用API​​检索网站内容以提供我的在线帮助系统.我有一段时间没有这个设置,它的工作没有任何障碍.

问题

在我的应用程序中,我需要为在线帮助系统添加全文搜索功能.我知道此功能请求会在某个时刻出现,因此在决定使用Google协作平台托管我的内容时,我检查了Sites API是否支持全文搜索.确实如此.例如,以下URL将在整个站点中搜索my-site包含该关键字的页面user.

https://sites.google.com/feeds/content/my.doma.in/my-site?q=user
Run Code Online (Sandbox Code Playgroud)

这有效,并给我预期的结果页面.但它只针对用西方语言编写的内容,或者更具体地说,用空格和标点符号分隔标记/单词的语言.当我在日语内容上运行类似的搜索时,搜索关键字????:

https://sites.google.com/feeds/content/my.doma.in/my-site?q=%E3%83%A6%E3%83%BC%E3%82%B6%E3%83%BC
Run Code Online (Sandbox Code Playgroud)

我将只获得结果页面,其中搜索词显示为裸字符串,即由空格或标点符号分隔.由于日语是一种用脚本连续编写的语言,这还不够.包含的页面,例如:

自身ごのユーザー基本情报の确认

不会出现在结果中.因此,似乎在幕后使用的搜索索引是基于"西方"词汇规则创建的,并且日语内容未正确标记化.但是,当我从Google网站的" 搜索此网站"字段中搜索相同的关键字时,我确实得到了正确的结果.我得出结论,存在一个正确的标记化索引,但似乎不可能将它用于基于API的搜索.

到目前为止我尝试过的

为了解决这种情况,这些是我迄今为止探索过的途径:

  • 我试过在Google协作平台中寻找语言设置.有一个通用的UI语言设置已经设置为日语,并且对API查询结果没有影响.没有每页或每模板语言设置来强制索引器/标记器的手.
  • 我试过用双引号引用搜索字符串("????").
  • 我试过包含通配符(*????*).
  • 我已经使用其他语言的参数,在其他谷歌API是常见的URL尝试:lang,hl(界面语言), rl(结果语言)..
  • 我尝试过创建一个Google 自定义搜索引擎,但似乎无法让它在非公开的Google网站上运行.

所以...

我在这里很快就没有想法了.在最糟糕的情况下,我最终将不得不自己检索,标记和索引所有内容,并使其可以通过这种方式进行搜索.由于这需要大量工作,我想知道是否有人遇到过同样的问题,并找到了可接受的解决方法或解决方案.


更新1

我还没有找到针对此问题的优雅解决方案,因此我在Google Apps API问题跟踪器上提出了一个缺陷:https://code.google.com/a/google.com/p/apps-api-issues/issues /细节?ID = 3780

更新2

在经过一些反复来回之后,谷歌的工程师们已经承认问题确实存在于所描述的范围内,并且已经"在内部提交了问题".缺陷票一直停留在被分流状态至今.如果您和我一样有兴趣看到此问题已解决,请花点时间在Google的问题跟踪器上加注星标/投票.

full-text-search google-sites tokenize google-data-api

67
推荐指数
1
解决办法
907
查看次数

如何在Visual Studio中实际搜索所有文件

我正在使用Visual Studio Express 2013 for Web.比方说,我在类Utils中有一个名为FooBar()的静态公共方法.我们也说我在很多.aspx文件中使用这种方法.假设我将FooBar()的方法签名更改为FooBar(字符串),随后我想找到Utils.FooBar的所有实例,以便我可以更新它们.

现在假设我转到解决方案资源管理器搜索框,选择"在文件内容中搜索",然后输入"Utils".尽管我在各地都进行了Utils.*方法调用,但唯一显示的是Utils.cs文件.如果我一直输入"Utils.FooBar",则不显示任何内容.

现在,我正在启动一个cygwin窗口并使用grep,因为正常的Windows搜索也没用.但似乎在Visual Studio中必须有一个实际的搜索方式.我错过了什么吗?

full-text-search visual-studio visual-studio-2012

64
推荐指数
4
解决办法
9万
查看次数

有什么理由不在Heroku上使用PostgreSQL的内置全文搜索?

我准备在Heroku上部署一个需要全文搜索的Rails应用程序.到目前为止,我一直在使用MySQL与Sphinx的VPS上运行它.

但是,如果我想在Heroku上使用Sphinx或Solr,我需要支付附加费用.

我注意到PostgreSQL(Heroku上使用的数据库)具有内置的全文搜索功能.

有没有理由我不能使用Postgres的全文搜索?它比Sphinx慢还是有其他一些主要限制?

postgresql solr full-text-search sphinx heroku

61
推荐指数
3
解决办法
3万
查看次数

ElasticSearch作为主要数据存储区与写丢失,数据可用性等因素的可靠性如何

我正在开发一个项目,需要提供一个通用的仪表板,用户可以在不同的领域进行不同类型的分组,过滤和深入分析.为此,我们正在寻找一个允许切片和数据切片的搜索商店.

将有多个数据源,并将其存储在搜索存储中.源数据可能需要一些预先计算,这可以由中间组件完成.

我查看了几个博客,了解ES是否也可以可靠地用作主数据存储区.它主要取决于我们正在寻找的用例.有关我们使用的用例的一些信息:

  • 每年约有3亿条记录,1-2 KB.
  • 假设存储1年的数据,我们现在有300 GB,但由于数据增长,用例可以达到400-500 GB.
  • 截至目前尚不确定,我们将如何推送数据,但粗略地说,它每5分钟可以达到约2-3百万条记录.
  • 搜索请求很少,但需要复杂的查询,可以搜索最近6周到6个月的数据.
  • 文档将在文档中的几乎所有字段中编制索引.

一些博客称它足够可靠,可用作主要数据存储 -

一些博客称ES没有什么限制 -

有没有人使用Elastic Search作为数据的唯一真相,而没有像PostgreSQL,DynamoDB或RDS这样的主存储?我已经查明ES存在某些问题,例如分裂大脑和索引损坏,其中可能存在数据丢失问题.所以,我想知道是否有人使用过ES并且遇到了数据方面的麻烦

谢谢.

full-text-search search-engine nosql elasticsearch

61
推荐指数
2
解决办法
2万
查看次数