我使用Lucene在web应用程序中显示搜索结果。我还使用自定义分页来显示搜索结果。
搜索结果可能从5000到10000或更多不等。
有人能告诉我分页和缓存搜索结果的最佳策略吗?我建议您不要缓存结果,至少不要在应用程序级别缓存。不过,在一个有大量内存的盒子上运行Lucene会有所帮助,操作系统可以将其用于文件缓存
只需对每一页使用不同的偏移量重复搜索。缓存引入了状态性,最终会破坏性能。我们有数百名并发用户在搜索超过4000万个文档的索引。在不使用显式缓存的情况下,搜索在不到一秒钟的时间内完成
使
在我的Lucene文档中,我有一个字段“company”,其中公司名称被标记。
我需要对我的应用程序的某个部分进行标记化。
但是对于这个查询,我需要能够在整个company字段上创建一个PrefixQuery
例如:
我的品牌
我的
烙印
婆罗门农场
婆罗门
农场
定期查询“bra”将返回这两个文档,因为它们都有以bra开头的术语。
不过,我想要的结果将只返回最后一个条目,因为第一个术语以bra开头
有什么建议吗?创建另一个索引字段,其中公司名称没有标记。必要时,搜索该字段,而不是标
我正在使用solr的刻面,我遇到了一个问题,我希望我可以绕过过滤器
基本上,有时候,一个城镇的名字会作为
“剑桥”
有时候,它会以
“剑桥”
我想在Solr中使用一个过滤器来阻止镇名的尖叫。似乎所有的文字都有一个合适的地方
我想知道是否有人知道一个过滤器会忽略一个单词的第一个字符,并对其余字符使用小写。例如
剑桥>>剑桥
船体上的金斯敦>>船体上的金斯敦
等
或者,如果很容易编写自己的过滤器。。如果您能提供一些帮助,我们将不胜感激。。我不是一个Java人
谢谢你,这里没有那样的内置过滤器
我们的产品由多个应用程序组成,都使用Lucene。我参与的应用程序中有2个具有大约3 Gb和12 Gb的Lucene索引。另一个团队正在构建一个应用程序,他们估计LUCENE索引大小接近1TB。大约每15天向索引添加一次新文档。当前应用程序没有任何明显的性能问题。所以我的问题是:
我们现在应该使用Solr吗
什么时候应该停止使用Lucene并毕业于Solr
使用Solr有什么缺点/问题吗
客户端应用程序是在ASP.Net中开发的,但我认为它们将能够使用solrnet的Solr服务器。我不认为从L
实现Lucene实时索引的最佳方法是什么?从索引编写器获取索引读取器
更新:看起来当前的方法是对象。试试Zoie
Lucene wiki提供了一些信息:
看起来很有希望。它仍然是非常新的,但将本着精神提供分布式Solr索引。Lucene有一个称为近实时搜索的功能,以满足这一需求
它要求您的IndexReader与IndexWriter位于同一JVM中
您可以使用IndexWriter进行更改,然后使用IndexReader.open(writer)直接从写入程序打开一个读卡器,或者在旧的Luce
我有一个用Asp.NETMVC编写的类似论坛的web应用程序。我正试图实现Lucene.net作为搜索引擎。当我构建索引时,不时会出现与Lucene无法重命名deletable文件相关的异常。我想这是因为每次我想重建索引时都会清空它。以下是处理索引的代码:
public class SearchService : ISearchService
{
Directory IndexFileLocation;
IndexWriter Writer;
IndexReader
我需要将Lucene的分数标准化为0到1
例如,随机查询返回以下分数
8.864665
2.792687
2.792687
2.792687
2.792687
0.49009037
0.33730242
0.33730242
0.33730242
0.33730242
最高分是多少?10.0
谢谢lucene没有很好的标准方法来规范分数。读这个:还有这个
在您的案例中,如果结果按分数排序,则最高分数是第一个结果的分数。但对于其他每一个查询,这个分数都会有所不同
另请参见您可以将所有分数
问题是我想得到结果“id:id1 name:doc2 price:10.0”,但输出是“id:id1 name:doc2”。。。
因此,我想知道如果我想得到“id:id1 name:doc2 price:10.0”的结果,我如何修改我的编程?当您添加具有相同id的文档时。您基本上添加了两次相同的文档。
Solr将更新/覆盖文档。更新基本上是删除和添加
由于使用相同id添加的第二个文档没有price字段,因此不会添加该文档,也不会在索引中找到它
在添加回文档时,您需要更改和更改所有字段
Commo
我试图在Lucene中使用前缀查询来实现自动完成。我已经做了一个简单的测试,我认为应该工作,但它没有。我正在索引一些简单字符串,并使用KeywordAnalyzer确保它们没有标记化,但我的搜索仍然不匹配任何内容。如何索引和搜索字段以获得前缀匹配
这是我用来测试的单元测试。除了autocomplete和singleTerm方法外,其他方法都通过了
package com.sample.index;
import org.apache.lucene.analysis.Analyzer;
impo
是否可以使用PredicateBuilder类来构建RavenDB可以解释和使用的WHERE子句?我尝试了session.Query()和LuceneQuery,但都失败了:
这是会话。Query()尝试:
public static List<T> GetObjectList<T>(Expression<Func<T, bool>> whereClause)
{
using (IDocumentSession session = GetR
是否有任何选项可以从lucene索引中使用index.query(如下所示)获取随机节点
Index<Node> index = graphDb.index().forNodes("actors");
Node rand = index.query("foo:bar").getRandom();
Index Index=graphDb.Index().forNodes(“参与者”);
节点rand=index.query(“foo:bar”).getRandom();
谢谢
jö
我有两个Lucene索引,我正试图用Lucene 4.X中的ParallelCompositeReader一起打开。两个索引包含相同数量的文档(14365790),顺序相同。我的代码如下所示:
val articlesReader = DirectoryReader.open(FSDirectory.open(...))
val citationCountReader = DirectoryReader.open(FSDirectory.open(...))
val reader = new P
我只想检索“cmis:document”,而不需要wiki、博客,。。。在Alfresco 3.4.7上的lucene搜索中,但我不知道怎么做
TYPE:"cmis:document"
不起作用
有没有办法在查询中指定多个mimetype?Alfresco支持不同的查询方案,cmis:document仅适用于。使用Alfresco域模型而不是其CMIS视图:
TYPE:"cm:content" AND -TYPE:"cm:folder"
然后,如果要筛选:
或:
我怎样才能只过滤没有wiki
标签: Lucene
full-text-searchfuzzy-search
我用lucene 4.3.1实现了模糊搜索,但我对结果不满意。我想指定它应该返回的一些结果。例如,如果我想要10个结果,它应该返回10个最好的匹配,不管它们有多糟糕。大多数情况下,如果我搜索的单词与索引中的任何单词都非常不同,它将不返回任何内容。如何获得更多/更模糊的结果
下面是我的代码:
public String[] luceneQuery(String query, int numberOfHits, String path)
throws ParseExcepti
我目前有一个创建索引的bash脚本。代码在上面
如何向其添加词干 最通用的方法是用雪球分析器替换默认分析器。这将为所有动态映射的字符串字段启用词干分析。以下是启用英语词干分析器的方法:
curl -XPUT "localhost:9200/products" -d '{
"settings": {
"index": {
"number_of_replicas" : 0,
"number_of_shards": 1
我正在开发一款Spring3.2WebApp。我希望有人能帮我做这件事
我尝试在“Site”db表的“name”字段中获取所有带有“test”单词的站点
站点表行:
身份证号码:1
名称:“测试”
Site.class
@Entity
@Indexed
@Spatial
@Table(name = "site")
public class Site implements Serializable {
@Id
@GeneratedValue(strategy = Generat
我正在Centos 6上运行ElasticSearch 1.0.1,内存为32 GB
有4个节点,1个没有数据,其余有数据
在一个场景中,我手动关闭其中一个节点(以重新启动它)。重新启动时,分配给该节点的复制副本保持未分配状态。我不得不使用allocate命令再次手动分配它们
我的问题是:如何确保副本在重新启动时自动分配?我不想做任何人工分配
我在集群设置中禁用了_分配:false,所以这不应该影响它
我还应该检查什么呢?我认为这不应该发生
您的分配。禁用副本分配是否正确
在1.0.1中,这些设
我正在寻找一个JIRA自定义过滤器查询,以根据标准(例如,状态、优先级甚至自定义字段)显示票据。它应该从文本字段中排除精确的字符串
我已经试过了
"[Field name]" !~ "[Text to lookup]"
但这也排除了在文本字段中除了[Text to lookup]之外还有其他单词的其他票证
关键字“红色”的示例:
显示带有“红色某物其他”或“红色某物其他”的票证,但在所需字段中仅使用“红色”隐藏所有票证IMHO存在与注释相关的问题/错误~
我有XY-234号机票,上面有两条评论
我试图从查询结果中筛选出许多项
最终结果应仅包含Private设置为false的结果,或者如果为true,则为提供的隐私组的一部分
假设基本查询结果如下
ID Name Private PrivacyGroup
1 Yellow false
2 Red true 1
3 Blue true 2
4 Orange true 1
5 Black false
6 Green true 3
我尝试过各种各样的过滤器
我想在elasticsearch中指定每个字段的分析器。对于某些字段,我需要关键字分析器,而对于其中一个字段,我需要一个自定义数字分析器,它将删除所有非数字字符(请参阅下面代码中的number\u analyzer)
创建索引的请求是
{
"settings": {
"analysis" : {
"analyzer" : {
"number_analyzer" : {
"type":
我想调试Lucene令牌过滤器并查看结果。如何将令牌过滤器应用于令牌流以查看结果?
使用
解决办法是:
// Print result
f.reset();
Iterator it = f.getAttributeClassesIterator();
while (f.incrementToken()) {
System.out.println(f
.getAttribute(CharTermAttribute.cl
我试图理解在CQ5的索引配置中“boosting”属性的用法。我想我明白了,通过设置boost可以确定一个项目作为搜索结果返回到列表的最高层。因此,我尝试在默认的CQ5索引配置中添加以下boost行:
<index-rule nodeType="nt:base">
<property boost="5.0">jcr:title</property>
<property boost="5.0">history:title</property&g
标签:elasticsearch Lucene
search-engine
我在谷歌上搜索了所有索引碎片(如果存在)中的更新文档。我找到了一种方法(/_bulkapi),但它需要我们指定路由值。我没能找到解决我问题的办法。如果有人知道下面的事情,请告诉我
如果存在索引的所有碎片,是否有任何方法使用单个更新查询更新文档
如果没有,是否有任何方法生成路由值,以便我们能够使用更新查询命中所有碎片
对于批量更新,ES建议通过查询获取需要使用扫描和滚动更新的文档,更新文档并再次对其编制索引。在内部,ES从不更新文档,尽管它通过脚本提供了更新API。它总是使用更新的字段/值重新索引
标签: Lucene
azure-cognitive-search
Azure Search文档表示,在Azure Search next中的Lucene查询语法中,可以使用运算符:和&+,但为什么我会为接下来两个语义相同的查询获得不同的结果集:
search=tec AND pro&queryType=full&$count=true
search=tec %26 pro&queryType=full&$count=true //%26 is encoded &
编辑:固定的符号和编码代码,谢谢femtoRgon谢谢您
对于上下文,Elasticsearch中的我的数据如下所示:
"data": {
"errors": {
"file/name/somewhere.kt": 7,
"file/name/somewhereElse.kt": 1,
"file/name/some.kt": 2,
"file/name/where.kt": 4
}
现在就我所见,在Grafana
标签:elasticsearch Lucene
maxlimitdocument
当我们试图将更多文档摄取到“Lucene”实例中,超过其最大限制2147483519时会发生什么
我读到,当我们接近20亿个文档时,我们开始看到性能下降。
但“Lucene”是否只是停止接受超过其最大限制的新文档
此外,“Elasticsearch”在达到文档限制时如何处理其碎片的相同情况。引擎盖下的每个Elasticsearch碎片都是Lucene索引,因此此限制也适用于Elasticsearch碎片,基于此,它看起来停止为进一步的文档编制索引
性能下降取决于几个因素,如这些文档的大小、分配给
如何使用Lucene为搜索应用程序实现“排除这些单词”功能
谢谢 查看NOT运算符。只需相应地构造查询,或者如果是用户生成的查询,则进行处理。因此,我可以使用stopanalyzer:
StopAnalyzer StopAnalyzer包括小写过滤器,还具有一个过滤器,用于删除任何“停止词”,如英语中经常出现的冠词(a、an、the等),以便搜索。StopAnalyzer附带了一组停止字,但您可以使用自己的停止字数组对其进行实例化
更多信息:
你是说停止语吗?什么版本的Lucene?
标签: Lucene
duplicateslucene-highlighter
我的应用程序使用Lucene Highlighter 2.4.1。我使用荧光笔获取最佳匹配片段,并显示它们。
我使用HighlightedTermsanalyzer analyzer、查询查询、字符串字段名、字符串字段内容、int fragmentsNumber、int fragmentSize调用函数String[]GetFragmentswithHighlightedTermsanalyyzer。例如:
String text = doc.get("MetaData");
getFragme
我们正在使用Lucene作为sitecore的一部分进行文本搜索。
是否有任何方法可以忽略sitecore搜索中的停止词(如a、an、the…)。默认情况下,sitecore使用Lucene standard analyzer-Lucene.Net.Analysis.standard.StandardAnalyzer。您可以看到这是在web.config文件的/configuration/sitecore/search/analyzer元素中定义的。标准分析器< /代码>类中的一个构造函数接受将
标签: Lucene
full-text-searchlucene.netfull-text-indexing
每次更新lucene*.cfs文件中的索引后,文件号会增加_2.cfs、_5.cfs、_7.cfs。
每一次。这可以吗?或者我忘记关闭代码中的某些对象了吗?如果在更新索引后执行$index->optimize(),我想这是可以的。否则也可以,但索引的质量开始下降。似乎需要优化索引,它有它的优点
1) .CFS(复合文件)合并为一个大段文件
2) MergeFactor也是一个标准,为什么您有这么多复合文件,将其设置为15-20左右,我们发现它在该范围内提供了良好的结果,内存使用情况良好谢谢,我调
我正在尝试为一组文档创建索引,当我调用addDocument()时,得到一个异常“this Analyzer is closed”:
我想它是在抱怨分析仪,但为什么呢?以下是确切的信息:
org.apache.lucene.store.AlreadyClosedException: this Analyzer is closed
你能详细说明你的代码吗?您还没有包括实际使用分析器的代码吗?我在IndexWriterConfig构造函数中假设?您能为我们提供完整的堆栈跟踪吗?我在重现问题时遇到困
我正在尝试在我们的解决方案中实现Lucene搜索功能。我们选择的方法是覆盖数据库爬虫功能,而不是更传统的indexwriter/reader方法
它工作正常,但尝试实现拼写检查器模块会产生以下异常
System.InvalidOperationException: Lock@C:\Windows\TEMP\lucene-df395a60eeb827dc92350de6e4528673-write.lock# is not locked
Sitecore.Data.Indexing.FSLoc
我在Lucene中编制索引,只对从Lucene中获取相关文档的ID感兴趣(即,不是字段值或任何突出显示的信息)。鉴于这些要求,在不影响搜索性能(速度)或质量(结果)的情况下,我应该使用哪个术语向量?我也会使用更多类似的东西,所以我不想
TermVector.YES—Records the unique terms that occurred, and their counts, in each document, but doesn’t store any positions or offset
对于如何将方面添加到已经存在的Lucene索引中,我感到有点困惑
我有一个使用Lucene 3.1创建的Lucene索引(创建时没有任何方面)
我已经查看了Lucene文档中的facet,在那里他们向您展示了如何从头创建一个带有facet的索引,也就是说,您创建一个新的Lucene文档对象,使用分类工具向其添加facet信息(类别),然后在Lucene索引中编写该文档(使用IndexWriter)这还将向分类法索引添加额外数据(通过TaxonomyWriter),如下所述:
然而,我想要的是使
是否可以在Sitecore中使用Lucene搜索,并让Sitecore项目Web API以JSON的形式返回结果
Sitecore开发者网络上Sitecore项目Web API的文档没有给出如何通过项目Web API使用Lucene搜索的任何示例
我要寻找的最终结果是根据提供的搜索参数将搜索结果作为JSON返回。由于Sitecore项目Web API可以与Sitecore查询一起使用以检索项目,因此也可以方便地将其用于搜索。我认为这在项目Web API的默认实现中是不可能的
但是,您可以扩展它。
在德语和荷兰语等日耳曼语言中,单词常常粘在一起。例如,“质量控制”变为“质量控制”(de)或“质量控制”(nl)
我怎样才能让Lucene独立地搜索这些粘在一起的单词?也就是说,如果我搜索“qualität”或“kontrolle”,我希望找到“qualitätskontrolle”
似乎有此的筛选器:。但是我怎样才能将它与DutchAnalyzer和GermanAnalyzer连接起来进行索引和搜索呢?您必须编写自己的分析器才能包含过滤器
例如,子类GermanAnalyzer或从头编写一个,
我对编辑Sitecore(6.5)安装的搜索索引感兴趣。到目前为止,我已经使用版本1.0.0和3.1.0中的Luke打开索引文件夹。卢克报告了以下细节
这是通过lukeall-3.1.0.jar完成的
Index format: -4 (Lucene 2.3)
Index functionality: lock-less, single norms file, shared doc store
我试图通过Luke GUI ie提交对索引的简单更改。右键单击Set Normal,然后将0.5更改
我尝试使用Lucene 4.9作为索引机制,以NRT模式返回文档的术语。为此,我使用以下字段配置:
FieldType t2 = new FieldType();
t2.setIndexed(true);
t2.setStored(true);
t2.setTokenized(true);
t2.setStoreTermVectors(true);
t2.setStoreTermVectorPositions(true);
t2.setIn
我重写了一个从快速查询到内容搜索的新闻应用程序(概述+详细信息)。性能提升是巨大的,但我看到了一些可能的限制,我不知道如何与页面编辑器一起处理这些限制
当我使用快速查询时,即使还没有语言版本,我也会得到一个新闻实例。在Lucene中,我找不到结果(因为我过滤语言),因此在特定语言的概述中缺少新闻细节
编辑问题1
假设我们有一个两种语言(英语和德语)的解决方案。我有一个项目,目前只存在于一个单一的英文版本。当我在德语的概览页面上,希望通过快速查询找到此项目时(查询不重要),我会将此项目取回。错误的
如何使用ApacheLucene中的QueryParser来创建包含术语a或术语B(或两者,但至少包含其中一个)的查询编辑:此外,它还包含其他必须子句,例如,它必须包含C,并且必须包含A或B。
那么这是正确的吗
+(A OR B) +C
它很简单:A或B(或者只是ab)
这将生成两个带有的布尔子句。在这种情况下,必须至少有一个子句与整个BooleanQuery匹配:
/**将此运算符用于应出现在
*匹配文件。对于没有的布尔查询,必须
*子句一个或多个应子句必须与文档匹配
*使布尔查询匹配。
*
在我的项目中,我考虑使用ElasticSearch的Span Near查询,有一个约束条件,即某些标记可能必须用模糊性进行搜索。我能够生成一组SpanQuery(org.apache.lucene.search.spans.SpanQuery)对象,有些启用模糊功能,有些不启用模糊功能。我不知道如何在ElasticSearch SpanarQuery中使用这些SpanQuery集
有人能帮我找到正确的样本或文档指针吗。有没有办法在启用某些模糊子句的情况下构造ES SpanarQueryBuild
我想在弹性搜索中搜索一个数值表达式
范例
indent code 4.8663 spaces
indent code 121.232 spaces
indent code 12.3232 spaces
示例查询
get all string with "indent code between 1 and 100"
它应该是第一和第三,但不是第二
{
"span_near": {
我希望对两个词进行组合模糊搜索,例如:-“magikal~0.8”和“mistery”~0.8,应该返回“magical”和“神秘”两个词所在的结果
我目前的代码如下
Directory createIndex(DataTable table)
{
var directory = new RAMDirectory();
using (Analyzer analyzer = new StandardAnalyzer(Lucene.N
我是crate.io的新手,我不太熟悉“碎片”这个术语,我试图理解为什么在运行本地db时,它会创建4个不同的碎片
我需要将其简化为一个碎片,因为当我尝试将数据从板条箱导出到json文件时,它会导致问题(它会创建4个不同的碎片!)大多数用户在多台服务器上运行板条箱。要在多台服务器之间分发表的记录,需要将其拆分。那张桌子的一部分叫做碎片
为了确保数据库仍然有记录,默认情况下,在每个碎片的副本上创建。位于不同服务器上的数据副本
虽然系统没有碎片的完整副本,但集群状态为黄色/复制不足
在单个节点上运行的
我正在使用Umbraco v7.2作为一个站点,并且遇到了一个非常有趣的问题,试图在一个日期范围内使用外部搜索器搜索内容
如果我使用backoffice中的检查管理搜索工具执行Lucene搜索,我将使用以下查询获得结果:
{(+__NodeTypeAlias:bookingperiod)} AND startDate:2016-03-01T00\:00\:00
随后,我知道我可以得到一个范围内包含该日期的结果。然而,非常有趣、非常令人费解和非常令人沮丧的是,如果我使用范围查询,我不会得到任何结
如何返回列表中具有匹配多个字段的文档
例如:
每个文档都包含有关大学的信息
其中一个字段是以下格式的学生列表:
"students": [
{"name":"John", "age":23},
{"name":"Joe", "age":65},
{"name":"John","age":12}
]
因此,文档1有自己的学生列表,文档2有自己的学生列表,等等
如何查询以返回所有名为“John”且年龄至少为21岁的学生的大学(文档)?您应该将学生定义为映射中的嵌套字段,以便能够执行
我有Grafanav5.0.4和数据库ELASTICSEARCH5
在Base have字段中,使用关键字:
message.keyword:“May 15 09:50:32工人foo:2018/05/15 09:50:32 foo小额支付交易Complite:15135135151313313”
message.keyword:“May 15 19:50:32 workers goo:2018/05/15 19:50:32 foo小额支付交易Complite:44741684746318546
我正在寻找一个使用ElasticSearchJavaAPI将直接生成器添加到短语建议器的示例。当我创建direccandidategenerator对象时,有很多weired参数。例如,我为什么要给它一个lucene IndexReader,我应该如何创建它
DirectCandidateGenerator(DirectSpellChecker spellchecker, String field, SuggestMode suggestMode, IndexReader reader, dou
标签: Lucene
azure-cognitive-search
我有一个场景,我必须使用Azure search使用供应商名称搜索供应商。例如,下面是供应商列表
资讯科技有限公司
资讯系统有限公司
信息解决方案
Infosys公司技术
戴尔电脑
第一信息系统
我的搜索场景是
当Searchtext为Info时,它应返回1,2,3,4
当Searchtext为Infosys时,它应返回1,2,4
当Searchtext为Infosys Tech时,它应仅返回1而不是4
我还尝试了供应商名称字段上的关键字分析器,它也没有给出我期望的结果。基本上,我希望搜索文本从
Lucene在索引期间如何使用相似性?我在阅读索引时理解相似性的作用。因此,searcher.setSimilarity()在评分中是有意义的。IndexWriterConfig.setSimilarity()的用途是什么?Lucene在索引期间如何使用相似性?
简单的回答是:Lucene在索引时捕获一些统计数据,然后可以用来支持查询时的评分。我认为这仅仅是一个效率问题,它们被作为索引过程的一部分捕获,而不是在运行查询时被动态地重复重新计算
javadoc中有一节从较高的层次描述了这一点:
索引
上一页 1 2 ...
26 27 28 29 30 31 32 ...
下一页 最后一页 共 78 页