我正在运行一个简单的测试--尝试为某些内容编制索引,然后搜索它。我为一个简单的文档编制索引,但当搜索其中的字符串时,我会返回看起来是空文档的内容(它没有字段)。Lucene似乎在做些什么,因为如果我搜索文档中没有的单词,它将返回0个结果
当Lucene找到一个与给定查询匹配的文档,而该文档中却没有任何内容时,为什么Lucene会可靠地返回该文档
更多详情:
我实际上是在经营Lucandra(Lucene+Cassandra)。这当然可能是一个相关的细节,但不确定
字段设置为Field.Stor
更新现有Lucene索引的最佳方法是什么。我不需要从中添加/删除文档,而是更新现有文档 您必须在不覆盖的情况下打开索引,因此:
IndexWriter writer = new IndexWriter("MyIndexPath",analyzer, false);
末尾的false标志告诉它以追加模式打开
作者有一个更新的文档方法
writer.UpdateDocument(new Term("IDField",id), doc);
id字段应该是一些唯一的文档标识符,如文件名或文件号等。我
标签: Lucene
shardinghibernate-search
有没有人有使用自定义切分/分割的经验
有关Lucene Sharding的文档说明如下:
在某些情况下,有必要
分割(shard)一个文件的索引数据
将给定的实体类型转换为几个Lucene
索引。这一解决方案并非如此
除非有紧急情况,否则建议使用
需要,因为默认情况下,搜索将
因为所有碎片都必须被移除,所以速度要慢一些
只打开一次搜索。换句话说
只有当你有了爱,语言才能做到这一点
问题:)
有没有人在Hibernate搜索中实现了分片,使得查询也可以成为其中一个分片的目标
在我们的例子中,Luc
为什么DuplicateFilter不能与其他筛选器一起工作?例如,如果对测试进行了一点重新制作,则过滤器未应用于其他过滤器的印象和首次修剪结果:
public void testKeepsLastFilter()
throws Throwable {
DuplicateFilter df = new DuplicateFilter(KEY_FIELD);
df.setKeepMode(DuplicateFilter.KM_USE_
我有一个问题,schema.xml中有一个动态字段
作为
和
动态字段将复制到内容字段,如下所示:
<copyField source="sec_*" dest="Contents"/>
现在,当我使用一些动态字段(如“sec_1069:risk”)执行搜索时,它会过滤不包含称为sec_1069的动态字段的文档。任何人都可以帮助我强制solr不应过滤没有该动态字段的文档。试试sec_1069:risk或-sec_1069:[*到*]
我有120k db记录要提交到Solr索引中
我的问题是:
我应该在提交每10k记录后提交,还是在提交所有120k记录后仅提交一次
这两个选项之间有什么区别吗?根据,commit()允许读者查看添加的文档,并将所有添加/删除的文档放在磁盘的索引中。这是一项耗资巨大的行动
因此,如果您希望在添加其他文档时看到部分文档,或者希望确保不会丢失超过10000个文档的添加文档集,则需要提交每10000条记录
OTOH,如果您希望节省额外的提交时间,并且不怕在机器出现故障时丢失文档,请仅在添加所有文档后提交
我正在尝试在运行Sitecore 6.3.1的站点上创建一个新的Lucene索引。我使用了现有的系统索引作为指导,并且成功地在web上创建了一个新的索引,并掌握了对Sitecore内容树中所有项目的索引
然而,我遇到的困难是限制数据库爬虫索引内容树的哪一部分。目前,搜索索引包含内容树中任意位置的项目内容项目、媒体库项目、布局、模板等。。我想将索引仅限于/sitecore/content/Home中的项目
我已经在~/App_Config/Include/Search index/website.
我在lucene中的字段是产品名称、类型和子类型
我正在用abc查询类型,这将导致我得到类型为abc的产品。
这种abc类型的产品有pqr和xyz子类型
我可以使用TopCoreDocCollector.getTotalHits()获取xyz类型的总计数
但我想得到sub_类型的计数。即pqr和xyz
我怎样才能得到它
任何答复都会对我大有帮助
提前感谢。一种方法是基于abc查询创建一个筛选器,然后使用该筛选器约束子类型查询的结果
IndexSearcher searcher = // sear
在Lucene.Net中,我需要创建一个查询,将搜索限制为特定字段的特定术语列表
例如,我需要“AutoMake”是“Ford”或“Chevy”。因此,只要“AutoMake”的价值是这两种价值之一,我们就很好
下面是我如何形成布尔查询的,但我认为这是不对的:
var query1 = new TermQuery(new Term("AutoMake", "Ford"));
var query2 = new TermQuery(new Term("AutoMake", "Chevy"));
v
我已从以下网站下载solr:
当我试图通过以下方式开始solr时:
/solr/example/java -jar start.jar &
并尝试在8983端口的浏览器中打开,但不打开吗
HTTP ERROR: 404
Problem accessing /solr/admin/schema.jsp. Reason:
NOT_FOUND
Powered by Jetty://
开发者trunk如何启动实际上想要使用solr4.0如果您已经从trunk下载了源代码,那么
在阅读的源代码时,我注意到该类在将整数转换为字符串时避免了“UCS-16代理”(请参见方法int int2sortableStr(int,char[],int)of)
这些字符会引起什么问题?给定代码的注释令人困惑,实际上有一个错误,:
有时,关于Unicode的文章会错误地将UCS-2称为
“UCS-16”。UCS-16不存在;犯此错误的作者
通常打算参考UCS-2或UTF-16
你的问题#1:SortableIntField为什么要避免UCS-16代理?
例如,通过避免冗长来减少运行时间和节
我想用Lucene执行范围查询。正常语法大致如下:
{Aida TO Carmen}
如何构造查询,使所有高于最小值的值都可以接受?我使用的是Lucene.Net(2.9.2)在Lucene 3.x之前,您可以像下面这样使用RangeQuery:
QueryParser queryParser = new QueryParser(whichField, new StandardAnalyzer());
Query query = queryParser.parse(searchString);
我有一个索引,里面有我们产品的所有文档。文档字段包括:
团体
名字
版本
文件
因为我们的大多数文档都有几个站点,我为每个站点创建了索引中的一个文档。
因此,当我按组、名称和版本搜索产品时,会得到一些结果。但有时我希望这种组合(组、名称和版本)只有一个结果(不管产品有多少文档)
因此,我使用了DuplicateFilter:
因为这个过滤器只能用于一个字段(而不能用于字段组合),所以我创建了另一个字段(productkey)。在此字段中,我存储了此产品的id(组、名称和版本字段组合的md5
标签: Lucene
full-text-searcheclipselinkjava-ee-6hibernate-search
我在JEE6中有很好的应用,我使用EclipseLink作为JPA提供商。但是我需要在一些数据量巨大的字段上实现全文搜索。我认为数据库内部机制还不够。我已经搜索了一些关于可能性的信息,HibernateSearch看起来是一个很有前途的解决方案,但我不想迁移到Hibernate,因为我对EclipseLink很满意。我找到了Compass项目,但它不再得到完全支持
问题是:你们有什么好办法解决这个难题吗?您将使用什么来实现EclipseLink的全文搜索?你会直接用Lucene吗?我用的是Sol
我想在fts搜索中执行以下查询:TAG:(turte~0.5)
但这是行不通的。预期结果将是标记为“海龟”的文档
TAG:(turte)~0.5可以工作,但这显然不是同一个查询,结果完全不正确
是否可以在标签上添加模糊标记?如何/为什么不
谢谢 模糊查询适用于每个字段。如果不指定字段,则只使用默认字段
标签:turte~0.5应该可以工作它可以在我的索引上工作。你能用LUKE打开索引并尝试查询吗?对我来说(Lucene 3.5)使用TAG:turte~0.5,而不使用TAG:turte~0.5。
有人能帮助我理解一种在Lucene中使用抽象收集器类的定制实现的方法吗
我用一些测试文本实现了两种查询索引的方法:
1.总点击数等于2。两个文件名都相同,因此结果大小等于1,因为我将它们保留在一个集合中
TopDocs topDocs = searcher.search(query, Integer.MAX_VALUE);
LOG.info("Total hits " + topDocs.totalHits);
ScoreDoc[] scoreDosArray = topDocs.scoreDo
这个问题有点令人困惑。我是Lucene的新手,正在查阅文件。我发现向字段添加boost,会增加字段的范数,从而在搜索时增加术语的分数
也就是说,在索引时向字段添加boost可能会影响搜索时的分数。我的问题是,除了提振,还有其他方法可以做到这一点吗?请注意。在Lucene 4.x之前,曾经有一个基于向量空间模型的单一评分公式
以下是影响Lucene评分的因素
1)Tf:术语频率,即文档中术语的频率
2)Idf:反向文档频率:日志(集合大小/具有术语的文档数)“此公式可能会有所不同
3)字段增强:您
我想弄清楚lucene的分析仪是怎么工作的?
我的问题是lucene如何处理同义词?情况如下:
我们有单字和多字
单曲:foo=bar
多词:foobar=foobar
对于单个单词:
lucene是否扩展索引记录?我猜如果一个查询有一个像“foo”这样的词,它也会在查询中添加“bar”。我不知道它是否发生在索引中
对于多个单词:
lucene是否同时扩展了查询和索引?例如,如果我们有“foobar”,它是否会将foobar添加到索引/查询中
我的第二个问题是:Lucene使用令牌流,并
当我试图在Lucene中搜索诸如“变通/修复”之类的内容时,它会抛出以下错误:
org.apache.lucene.queryparser.classic.ParseException: Cannot parse 'workaround/fix': Lexical error at line 1, column 15. Encountered: <EOF> after : "/fix"
at org.apache.lucene.queryparser.classic.Que
现在我有一个项目,我需要建立一个搜索引擎,但我不能使用Solr,只有nutch和Lucee,虽然我在论坛中搜索,我发现很多人说nutch做索引,我安装了nutch(1.4)和爬网数据,但我意识到我没有索引文件夹或类似的东西,只有爬网数据。。所以,问题是,nutch是否真的索引了它爬行的东西,或者它需要Lucene来索引和搜索
另外,对于这个项目,我不能使用Solr,只有纯nutch和lucene,我需要用Java构建所有东西,所以当人们说nutch实际上是索引的时候,我真的很困惑。。。对不起,我
我有一个巨大的XML文件,其中包含多个文档(如果需要,可以很容易地将每个文档转换为多个文件)。这个巨大XML的文件大小约为4GB。我需要索引它,以便更好更快地搜索用户。我还使用XSLT转换这些数据
下面是我的基本XML结构-
<Docs>
<Doc>
<Title t=""></Title>
<Desc></Desc>
<Info></Info>
</Doc>
我在加载spring容器时遇到以下异常。堆栈跟踪如下所示。工作正常,但不知道发生了什么。有人能给我解决这个问题的办法吗
org.apache.lucene.index.corruptindexception:未能找到当前段\u N
谢谢如前所述,您的索引似乎已损坏。一些可能的原因可能是没有正确关闭资源,或者在Lucene写入索引时强行中断了它
您可以使用获取有关索引状态的更多信息,并尝试修复它。如图所示,您的索引似乎已损坏。一些可能的原因可能是没有正确关闭资源,或者在Lucene写入索引时强行中
我正在使用Logstash将元组插入ElasticSearch。
元组具有以下格式:
753469038 | 4057 | 1 | 0 | 99031479997 | 0 | 350771 | 1 | 47382594591370772 | 6050143149551329 | 2400 |+| 3.5
753453038 | 5345 | 1 | 0 | 23543643667 | 0 | 346661 | 1 | 47382594591370772 | 6050143149551329 |
我创建了一个名为:myFullTextIndex的全文索引
当我想搜索模式:Hello World,查询如下:
START w=node:myFullTextIndex('title:"Hello World"')
这很有效
但是,我无法搜索由通配符包围的同一字符串。
我希望对该模式的搜索会返回一个结果:*Hello World*
我试过:
START w=node:myFullTextIndex('title:"*Hello World*"')
及
但不起作用(出现语法错误)
有什么想法吗
我正在寻找关于如何在Lucene 4.0中使用PorterStemFilter类的帮助。以下是我的索引器取自:
StandardAnalyzer=新的StandardAnalyzer(版本.LUCENE_40);
目录索引=新的RAMDirectory();
IndexWriterConfig配置=新的IndexWriterConfig(Version.LUCENE_40,analyzer);
IndexWriter w=新的IndexWriter(索引,配置);
addDoc(w,“Luce
标签: Lucene
elasticsearchfull-text-search
我正在尝试实现elasticsearch映射,以优化大量文本中的短语搜索。根据中的建议,我正在使用木瓦过滤器为每个短语构建多个单格
两个问题:
在上面提到的文章中,stopwords被过滤掉,而shingle通过插入“u”标记来处理缺少的空格。应该从引擎索引的unigram中删除这些标记。这种消除的要点是能够响应包含各种“无用”单词的短语查询。标准解决方案(如本文所述)已不再可能,因为Lucene不推荐这种行为所需的特定功能(enable_position_increments)。我如何解决这类
为了演示,我有5个文档。调用IndexWriter提交函数后,*.fdx*.fdt文件将从索引文件夹中消失。提交后它们为何消失以及它们是如何工作的。好问题中解释了这一点。。。甚至我也在寻找同样的……我已经读过那个文件了。它没有解释为什么fdx.fdt文件在调用IndexWriter提交方法后消失。
标签: Lucene
ibm-connectionsfilenetlukeibm-css
使用Luke,它显示Lucene索引中的348K文件。我们的存储库在通过ACCE(IBM Connections将文件存储在Connections Content Manager[ie.FileNet]中)使用SQL命令进行查询后,将返回用户上载的345K文件。有没有办法解释3K的差异?Luke会报告比实际存储库包含的文档更多,这似乎很奇怪
有控制文件吗?版本?我可以看到Luke页面上列出了325个文档,表明它也在计算删除量,但仍然存在3K的差异(在计算删除量时,实际差异最初接近3.5K)。随着
标签: Lucene
Neo4j
full-text-searchautosuggestfulltext-index
我正在尝试创建基于Lucene全文索引的自动建议。
例如,主要问题是如何基于多术语短语创建自动建议(autocomplete)-
nosql dat*
结果可以是
nosql database
nosql data
但不是
perfect nosql database
Lucene查询的正确语法是什么,以便根据多术语查询中的第一个单词创建自动建议,并在末尾使用通配符?我也有类似的要求,
Lucene具有Span查询,允许您在查询中使用文本中单词的位置
我已经使用FirstSpanQuery
我是Elasticserach的新手,正在寻找现有方案的解决方案。假设我创建了一个文档:
{
"employee": {
"properties": {
"id" : {"type": "string"},
"value": {"type": "string"},
"role": {"type": "string"},
"desc": {"type": "string"}
}
}
在SQL中是这样的
SELECT SUM(Value)
FROM table
WHERE condition
我可以在Lucene中执行类似操作吗?不能直接执行
您可以在每个文档中存储DocValues(例如,一个数值),并编写一个自定义收集器来进行添加
我刚开始使用Lucene.Net,但最终目标不是真正实现搜索(至少现在不是),而是能够为文档编制索引,然后分析索引以查找最常出现的术语
例如,我有:
Lucene.Net.Analysis.Standard.StandardAnalyzer analyzer = new Lucene.Net.Analysis.Standard.StandardAnalyzer(Lucene.Net.Util.Version.LUCENE_30);
var LDoc = new Lucene.Net.Docume
我不熟悉hibernate lucene搜索。在病房的几天里,我一直在用特殊字符搜索关键词。我正在使用多字段QueryParser进行精确短语匹配和布尔搜索。但在这个过程中,我无法获得搜索关键字的结果,如“拥有1年以上的经验”,如果我没有在搜索关键字周围加引号,那么我将得到结果。所以我在lucene查询的执行过程中观察到的是,它正在转义特殊符号(+)。我正在使用StandardAnalyzer.class。我认为,如果我使用WhiteSpaceAnalyzer,它将不会转义特殊字符,但它可能会影
我试图通过在索引上使用下面的PUT请求进行更新,但仍然得到上面的_映射输出
{
"myindex": {
"mappings": {
"properties": {
"city": {
"type": "text",
我正在尝试实现对在线商店的搜索,要求如下:
如果用户仅搜索类别名称,请返回该类别的页面
如果用户同时搜索类别和品牌,则返回应用了类别和品牌筛选器的搜索页面
如果用户搜索与产品完全匹配的值,则返回产品的页面
如果我们在多个类别和品牌中匹配多个产品,请返回结果
我的问题是,使用单个Lucene索引可以实现这一点,还是应该使用多个索引并搜索所有索引?
据我所知,Lucene没有任何关系,所以我不能表示像category->brand->model这样的东西
谢谢大家!
我的问题是,使用一个Lucene
我有两个单独的索引,包含不同的字段,这些字段一起包含索引的所有可搜索字段。例如,第一个索引保存所有文档的索引文本,第二个索引保存每个文档的标记
请注意,下面的示例有点不可靠,因为我更改了实体的名称。
Index1:
文本
文件id
Index2:
标签名称:“非常重要”
用户:“弗雷德的id”
我希望将索引分开,因为每当用户添加/删除标记时,不断更新单个索引似乎是浪费
到目前为止,我认为我可能需要处理这两个搜索结果并手动(在代码中)合并它们。还有其他建议吗
我不想合并单独的/分片的索引。Luce
我正在考虑/致力于为我们公司的各种内容类型实现一个搜索引擎,并试图对Lucene(特别是.net风格)了如指掌
目前,我的主要问题是一个索引中的文档是否必须包含相同的字段
例如:
文件1:
标题:“我是一份文件,宝贝”
正文:“这里有一些重要的事情”
纬度:26.12224
长度:-65.23124
品牌:东芝
文件2:
标题:“我的另一份文件”
身体:“Lorem ipsum和所有的爵士乐”
类别:物品
作者:洛因爵士
…等等如果您希望对特定字段进行索引,我想所有文档都必须具有相同的字
我对使用Solr还不熟悉,我肯定错过了什么
在示例模式中我还没有涉及太多内容,我导入了一些示例数据。我还设置了LocalSolr,看起来效果不错
我的问题只是一般的查询Solr。我有一个文档,其中name字段设置为tom。我一直在查看配置文件,但我就是不知道哪里出错了。一堆字段被索引和存储,我可以在admin中看到这些值,但我无法让查询正常工作。我尝试了各种查询(),结果如下:
**Query:** ?q=tom
**Result:** No results
**Query:** q=\*:\
以下是模式的相互测试部分:
<fieldType name="text_rev" class="solr.TextField" positionIncrementGap="100">
<analyzer type="index">
<tokenizer class="solr.WhitespaceTokenizerFactory"/>
<filter class="solr.StopFilterFactory" ignoreC
我想同时搜索两个查询,例如“macbook pro”和“iphone”,搜索的默认字段是“title”,因此查询是:(title:macbook pro title:iphone)。我希望在每个查询中使用“and”操作,例如(+title:macbook+title:pro),在查询之间使用“or”操作,例如
((+标题:macbook+标题:pro)(标题:iphone))。但是,在使用QueryParser解析这个查询(title:macbook pro title:iphone)之后,结果
是否有人在Lucene中有ExtendableQueryParser的使用示例?我试过几种方法,但都不起作用。所以,我用Lucene 4.5.1编译了我的代码,效果很好
我一直在使用它将字段术语查询扩展为“span first”查询,如下所示:
package test;
import java.io.IOException;
import java.io.StringReader;
import java.util.LinkedList;
import java.util.List;
im
我正在使用Umbraco中的Examine查询内容节点的Lucene索引。我有一个字段“completodetext”,它是所有节点属性的串联(以保持简单,而不是跨多个字段搜索)
我接受用户提交的搜索条件。当搜索词是多个词(即“firstterm secondterm”)时,我希望生成的查询是OR查询:在fullNodeText是firstterm或secondterm的情况下返回结果
我想:
{+completeNodeText:"firstterm ? secondterm"}
但相反,我
任何人都可以混合使用最新的Hibernate搜索(4.4.0+)
Lucene 4去上班了?可能吗?假设Lucene 3到4的内部变化太大。我认为这是不可能的。HibernateSearch4.4旨在与Lucene 3.6配合使用
看来Lucene 4.X支持计划用于我认为这是不可能的。HibernateSearch4.4旨在与Lucene 3.6配合使用
看来Lucene 4.X的支持计划也给人留下了深刻的印象。如果有人在HS 5之前进行了额外的改装,那就更像是在黑暗中大喊大叫了。这也给人留下
标签:elasticsearch Lucene
tokenanalyzer
假设我想使用edge ngram技术进行自动完成(完成建议对我来说不是一个好的选择)。我想用[“u”、“us”、“us”、“us”、“us a”、“us ar”、“us arm”、“us arm”]来索引“美国陆军”
问题是-我还有一个同义词列表。例如,“us”是“usa”的同义词。我怎样才能把“美国陆军”分为“美国”和“陆军”,找到它们的同义词并把它们重新组合在一起
我试过这样做:
{
"analysis": {
"filter": {
"ngr
有没有办法找到索引中各个字段的大小
我有10个字段,并且_source被禁用。我没有字段的映射
启用_all后,磁盘上的索引大小为95 mb
如果没有_all(禁用),磁盘上的索引大小为70 mb
我的理解是_all存储所有字段的副本。那么,索引大小是否会加倍?为什么差异仅仅是15MB而不是47mb
谢谢\u所有不是所有字段的副本;它只是另一个存储所有其他字段值的字段
假设索引中只有三个文档(d1、d2和d3),只有两个字段f1和f2。见下文:
d1
{
"f1": "v1",
我很抱歉,这也是一个错误。
作为这个问题的答案,我正在尝试设置正确的url来放置索引映射,但在我的实例上不起作用:
$ cat mapping.json | http PUT myhost:9200/acastest/_mapping
结果:
HTTP/1.1 400 Bad Request
Content-Length: 247
Content-Type: application/json; charset=UTF-8
{
"error": {
"reason":
标签:elasticsearch Lucene
bigdata
我正在使用ES-2.4.0
索引json:
{
“_id”:1,
“名称”:“Longsword”,
“说明”:“长字可单手或双手使用”,
“类别”:“夏普”
}
1.我已创建索引,正在创建默认映射。
2.现在我正试图按照这里的建议更新映射
链接:
关于点1:我没有使用任何分析仪
关于点2:我使用的分析仪“未分析”
但它不起作用
问题:ES-2.X是否已停止映射更新功能?如果没有,如何更新映射?
注意:在尝试时,我得到了这个错误
{
“错误”:{
“根本原因”:[
{
“类型”:“非法参数\异常
标签:elasticsearch Lucene
full-text-indexing
我们使用Elasticsearch 6.1进行索引。我们过去常常每天更新我们的文件。我们面临计数API的问题。基本上,我们得到的计数是错误的
我的分析表明,这是因为Lucene处理文档更新查询的方式,所以它是删除文档和更新文档的计数
我引用了这个博客
一两天后,计数开始正确。
每次更新很多文档时都会发生这种情况
这个问题是否可以解决,以便我们能够实时获得正确的计数。一旦您更新了索引或删除的文档,如果您需要立即查询它们,则需要刷新索引
比如说
DELETE test
PUT test/doc/1
正如标题所说,我希望在整数字段上有范围面
在文档中,它说:范围刻面LongRangeFaceCounts,DoubleRangeFaceCounts从提供的LongValuesSource计算动态数值范围的计数
我可以对任何数字类型使用longranceCounts或doubleRangeFaceCounts:double,decimal,long,float,但不能使用int,这很烦人
有人有从int字段获取范围方面的经验吗
谢谢您可以为int值字段获取LongValuesSource:
(或
标签: Lucene
search-enginelucene.net
我读了很多关于Lucene索引和搜索的书,但仍然不明白什么是术语?术语和字段之间的区别是什么?一个非常粗略的类比是字段就像数据库表中的列,而术语就像每个数据库列中的内容
更具体地说,对于Lucene:
条款
术语是索引标记。见:
Lucene分析器是将文本分解为索引标记(也称为术语)的处理管道
例如,如果你在文档中有以下句子
"This is a list of terms"
…然后将其传递给空白标记器,这将生成以下术语:
This
is
a
list
of
terms
上一页 1 2 ...
35 36 37 38 39 40 41 ...
下一页 最后一页 共 78 页