鉴于:
可能相关的信息:
例如:
Joel Spolsky在播客#11中表示,他的托管网络应用产品FogBugz On-Demand使用Lucene.他有成千上万的按需客户.每个客户都有自己的数据库.
他们为每个客户端使用一个索引并将其存储在客户端的数据库中.我不确定细节.而且我不确定这对Lucene来说是否是一个严肃的模式.
问题:
您将如何设置Lucene搜索,以便每个客户端只能在其数据库中进行搜索?
你会如何设置索引?
你在哪里存储索引?
您是否需要为所有搜索查询添加过滤器?
如果客户取消了,您将如何删除其(部分)索引?(这可能是微不足道的 - 还不确定)
可能的解决方案:
为每个客户端(数据库)创建索引
拥有一个带有database_name字段的巨大索引.始终包含database_name作为过滤器.
最后一件事:
我也接受使用Solr(Lucene的扩展)的答案.也许它更适合这个问题.不确定.
我有一个存储在字段'h'中的英文单词数据库.我刚刚发现文本索引,我想在这个字段上创建一个以加速正则表达式搜索,但不知何故,我只是无法正确获得语法.我正在使用pymongo 2.7.1和python 3.4.
from pymongo import MongoClient
from pymongo import ASCENDING
from pymongo import DESCENDING
from pymongo import TEXT
#...
collection.create_index('h', TEXT)
Run Code Online (Sandbox Code Playgroud)
我收到以下错误:
in create_index
raise TypeError("cache_for must be an integer or float.")
TypeError: cache_for must be an integer or float.
Run Code Online (Sandbox Code Playgroud)
请注意,ASCENDING和DESCENDING工作.另外我想将默认语言设置为英语.
可能的重复:
MySQL/PHP 搜索效率
如何向 MySQL 中的现有表添加全文功能。
我已经看到在创建表时直接添加它,如下所示。
CREATE TABLE articles (
id INT UNSIGNED AUTO_INCREMENT NOT NULL PRIMARY KEY,
title VARCHAR(200),
body TEXT,
FULLTEXT (title,body)
);
Run Code Online (Sandbox Code Playgroud)
但是创建表格后如何手动添加全文呢?
我正在尝试在实体框架迁移上创建一个全文目录,但如果我使用以下命令进行迁移:
migrationBuilder.Sql("CREATE FULLTEXT CATALOG[CatalogName]");
Run Code Online (Sandbox Code Playgroud)
我得到以下内容:
CREATE FULLTEXT CATALOG statement cannot be used inside a user transaction.
Run Code Online (Sandbox Code Playgroud)
如果我尝试在种子函数中执行此操作,我会得到相同的结果.我已经搜索了这个以及我发现作者要么决定在数据库上手动完成它或其他一些不适用于我的解决方案.
关于如何让这个工作的任何想法?
sql-server entity-framework database-migration full-text-catalog full-text-indexing
我有一个 MongoDB Atlas 搜索索引,其中字段名称具有自动完成类型,并且具有以下属性:
maxGrams : 15
minGrams : 2
tokenization: edgeGram
fold diacritics: true
Run Code Online (Sandbox Code Playgroud)
该集合包含以下名称:
The American
The American Equity Underwriters
The American Prairie Foundation
The American Conservatory Theater
The American Club
Run Code Online (Sandbox Code Playgroud)
使用此自动完成查询:
{
autocomplete: {
query: 'The American',
path: 'name'
}
}
Run Code Online (Sandbox Code Playgroud)
我可以使用以下 searchScore 检索上面的所有名称:
The American Conservatory Theater -> 15.474836349487305
The American Equity Underwriters -> 15.379003524780273
The American Prairie Foundation -> 15.379003524780273
The American Club -> 15.271049499511719
The American -> 13.68109130859375
Run Code Online (Sandbox Code Playgroud)
即使美国是完全匹配的,它也会得到较低的分数。
为什么精确匹配搜索分数低于其他搜索分数?
lucene full-text-indexing mongodb mongodb-atlas mongodb-atlas-search
创建索引MySQL
添加完FULLTEXT索引后,如何使其保持最新状态?
以这种方式添加: ALTER TABLE search_index ADD FULLTEXT(si_fulltext)
试图像这样更新它:
ALTER TABLE search_index MODIFY FULLTEXT(si_fulltext)
ALTER TABLE search_index CHANGE FULLTEXT(si_fulltext)
Run Code Online (Sandbox Code Playgroud)
谢谢,乔
我在网上搜索了很多天似乎互联网从来没有听说过我的问题:
我有一个邮政地址数据库表,其中包含大约37M的英国记录,其中包含地理空间索引和衍生的全文索引,如下所示:
create index on gb_locations using gin(to_tsvector('english', "Postcode" || ' ' || "Postcode_outcode" || ' ' || "Road" || ' ' || "Neighbourhood" || ' ' || "Admin2" || ' ' || "Admin3");)
Run Code Online (Sandbox Code Playgroud)
我的全文搜索形式如下:
SELECT * FROM gb_locations
WHERE
to_tsvector('english', "Postcode" || ' ' || "Postcode_outcode" || ' ' || "Road" || ' ' || "Neighbourhood" || ' ' || "Admin2" || ' ' || "Admin3") @@ plainto_tsquery('english', 'greenham road rg14')
Run Code Online (Sandbox Code Playgroud)
该查询适用于大多数英国地址,特别是在伦敦地区,但对于更远的地方,查询不会返回任何结果.
我已经验证表中存在记录,因为我可以使用地理空间搜索找到它,但对于全文搜索,似乎数据库不知道它.
这是解释:
Bitmap Heap Scan on gb_locations …Run Code Online (Sandbox Code Playgroud) postgresql full-text-search full-text-indexing tsvector psql
我有一个表定义如下
CREATE TABLE [dbo].[Dialogs](
[ID] [int] IDENTITY(1,1) NOT NULL,
[DiscussionID] [int] NOT NULL,
[ApprovedByUserID] [int] NULL,
[AddedByUserID] [int] NULL,
[Text] [nvarchar](max) NULL,
[ApprovalStatus] [int] NULL,
[ApprovedOn] [datetime] NULL,
[AddedOn] [datetime] NOT NULL,
CONSTRAINT [PK_dbo.Dialogs] PRIMARY KEY CLUSTERED
(
[ID] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]
Run Code Online (Sandbox Code Playgroud)
Text列包含用户输入的html.我想创建的全文索引Text列,我还需要支持HTML过滤器,这样,当任何用户类型<div>,<p>或任何其他HTML标记则不会返回任何结果.
要创建索引我在下面使用 SQL
CREATE FULLTEXT INDEX ON [Dialogs]
(
[Text] …Run Code Online (Sandbox Code Playgroud) html sql-server full-text-search full-text-indexing sql-server-2012
是否可以在 mongo 中对多个 $text 索引搜索使用 $and 运算符?
我的数据库的 tp 集合中有文档
> db.tp.find()
{ "_id" : ObjectId("...."), "name" : "tp", "dict" : { "item1" : "random", "item2" : "some" } }
{ "_id" : ObjectId("...."), "name" : "tp", "dict" : { "item3" : "rom", "item4" : "tttt" } }
Run Code Online (Sandbox Code Playgroud)
然后我做
> db.tp.createIndex({ "$**": "text" })
> db.tp.find({ $and: [{$text : { $search: "random" } }, {$text : { $search: "redruth" } }]})
Run Code Online (Sandbox Code Playgroud)
它失败了
Error: error: {
"waitedMS" : NumberLong(0),
"ok" : …Run Code Online (Sandbox Code Playgroud) 解决了我在这个问题中提出的问题后,我尝试使用索引来优化 FTS 的性能。我在我的数据库上发出了命令:
CREATE INDEX my_table_idx ON my_table USING gin(to_tsvector('italian', very_important_field), to_tsvector('italian', also_important_field), to_tsvector('italian', not_so_important_field), to_tsvector('italian', not_important_field), to_tsvector('italian', tags));
Run Code Online (Sandbox Code Playgroud)
然后我编辑了模型的 Meta 类,如下所示:
class MyEntry(models.Model):
very_important_field = models.TextField(blank=True, null=True)
also_important_field = models.TextField(blank=True, null=True)
not_so_important_field = models.TextField(blank=True, null=True)
not_important_field = models.TextField(blank=True, null=True)
tags = models.TextField(blank=True, null=True)
class Meta:
managed = False
db_table = 'my_table'
indexes = [
GinIndex(
fields=['very_important_field', 'also_important_field', 'not_so_important_field', 'not_important_field', 'tags'],
name='my_table_idx'
)
]
Run Code Online (Sandbox Code Playgroud)
但似乎一切都没有改变。查找所花费的时间与以前完全相同。
这是查找脚本:
from django.contrib.postgres.search import SearchQuery, SearchRank, SearchVector
# other unrelated stuff here
vector = …Run Code Online (Sandbox Code Playgroud) python django postgresql full-text-search full-text-indexing