我正在尝试执行一个查询,就像从文档中检索一个特定字段,我在执行查询时没有获取运行时错误,但我没有得到我应该从查询中检索的3个字段,只是日期和原点,但没有变量,应该返回所有变量的变量都是空值.我如何选择我只想在查询中检索的字段?
目前我的查询如下所示:
@Query(value = "id:?0", fields = {"?1","date","origin"})
List<Data> getRecord(String id,String field);
Run Code Online (Sandbox Code Playgroud) 我想编写一个FacetQuery,除了一个过滤条件(fq)之外,它可能没有任何标准.以下查询是我想使用spring-data-solr API构建的示例.
http://localhost:8983/solr/jpevents/select?q=*:*&fq=categoryIds:(1101)&facet=true&facet.mincount=1&facet.limit=1&facet.field=primaryCategoryId
Run Code Online (Sandbox Code Playgroud)
如何在FacetQuery中设置查询参数(q =*:*)?
环境:我正在使用带有Solr 4.4.0和Spring 3.2.4.RELEASE的spring-data-solr 1.0.0.RELEASE编写基于Spring MVC的Search API.
我需要在Spring Data Solr自定义存储库中实现以下内容:
(X或Y)和Z.
我目前的代码如下:
Criteria criteria = new Criteria("x").is(X_VALUE);
criteria = criteria.or(new Criteria("y").is(Y_VALUE);
criteria = criteria.and(new Criteria("z").is(Z_VALUE);
Run Code Online (Sandbox Code Playgroud)
但运行此代码我得到以下优先权:
X OR(Y和Z)
有任何想法吗?
我正在使用 apache solr 来搜索当前应用程序中的记录。
我可以通过配置上下文字段来根据 DocumentType 过滤建议。
现在我想添加另一个上下文字段,例如departmentType。我不确定如何为多个上下文字段配置建议器。
这是与单个上下文字段一起使用的建议器,并且工作正常。
<searchComponent name="suggest" class="solr.SuggestComponent">
<lst name="suggester">
<str name="name">suggesterByName</str>
<str name="lookupImpl">AnalyzingInfixLookupFactory</str>
<str name="dictionaryImpl">DocumentDictionaryFactory</str>
<str name="field">fullName</str>
<str name="contextField">documentType</str>
<str name="suggestAnalyzerFieldType">text_general</str>
<str name="buildOnStartup">false</str>
</lst>
</searchComponent>
Run Code Online (Sandbox Code Playgroud)
我参考这篇文章 https://issues.apache.org/jira/browse/SOLR-7888
但仍然不清楚如何在单个建议器中配置多个上下文字段。
如何在控制台或文件中记录 spring data 生成的 solr 查询。我正在使用 Spring Boot 版本 1.4.3.RELEASE 中的 spring-data-solr 版本 2.0.6.RELEASE。
我正在尝试在文件或控制台中记录语句,因为我们可以在 spring-data-jpa 中为 sql 语句执行此操作。
我希望使用spring-data-solr在一个服务中访问多个/ 2个repos.从Spring Data Solr多核和存储库我知道'通过命名空间配置的多核支持不幸是一个悬而未决的问题'.
能否请您帮我解决以下示例,如何创建自定义Repos?
我的applicationContext.xml有两个Solr模板定义如下:
<!-- Enable Solr repositories and configure repository base package -->
<solr:repositories base-package="com.ay.api.repository"/>
<!-- Configures HTTP Solr server -->
<solr:solr-server id="solrServer" url="${solr.server.url}"/>
<!-- Configures Solr Events template -->
<bean id="solrEventsTemplate" class="org.springframework.data.solr.core.SolrTemplate">
<qualifier type="solrEventsTemplate"/>
<constructor-arg index="0" ref="solrServer"/>
<constructor-arg index="1" value="${solr.server.events.core.name}"/>
</bean>
<!-- Configures Solr Towns template -->
<bean id="solrTownsTemplate" class="org.springframework.data.solr.core.SolrTemplate">
<constructor-arg index="0" ref="solrServer"/>
<constructor-arg index="1" value="${solr.server.towns.core.name}"/>
</bean>
Run Code Online (Sandbox Code Playgroud)
我有以下回购
@Repository
public class EventDocumentRepositoryImpl implements EventSearchRepository {
@Resource
@Qualifier("solrEventsTemplate")
private SolrTemplate solrEventsTemplate;
...
} …Run Code Online (Sandbox Code Playgroud) 我正在使用Spring Data Solr在我的项目中实现搜索模块.为了启用多核支持,我只是实例化一个HttpSolrServer,然后使用声明一个基于java的Spring配置类@EnableSolrRepositores(multicoreSupport=true).一切都很完美,直到我尝试为Solr相关代码和模式编写集成测试.
我想使用EmbeddedSolrServer进行测试,以便测试可以在不依赖外部Solr服务器的情况下运行,但我找不到正确配置的方法.请指教.
我对Spring很陌生,以为我会尝试spring-data-solr。
当我尝试注入TeamRepository时,似乎出现了问题,TeamRepository是扩展SolrCrudRepository的空接口。我试过使用anatedatedConfiguration和XmlConfiguration甚至两者都使用,而且似乎没用。
我正在启动的堆栈跟踪是:
SLF4J: Failed to load class "org.slf4j.impl.StaticLoggerBinder".
SLF4J: Defaulting to no-operation (NOP) logger implementation
SLF4J: See http://www.slf4j.org/codes.html#StaticLoggerBinder for further details.
Disconnected from the target VM, address: '127.0.0.1:54211', transport: 'socket'
Exception in thread "main" org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'repositoryTeamIndexService': Injection of autowired dependencies failed; nested exception is org.springframework.beans.factory.BeanCreationException: Could not autowire field: public app.solr.repository.solr.TeamRepository app.solr.repository.RepositoryTeamIndexService.repository; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'teamRepository': FactoryBean threw exception on object creation; nested exception is java.lang.NullPointerException
at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor.postProcessPropertyValues(AutowiredAnnotationBeanPostProcessor.java:288) …Run Code Online (Sandbox Code Playgroud) 我正在使用一个聚合来自多个来源的数据的应用程序.在这种情况下,我需要使用不相关的数据连接到两个不同的Solr服务.为此,我设置了两个不同的数据存储库.我已经定义了bean如下:
@Configuration
@EnableSolrRepositories(basePackages={"foo.utilities.solr.repos.gcr"}, multicoreSupport=true)
public class GcrSolrContext {
@Bean
public SolrClient solrClient() {
return new HttpSolrClient("http://foo:8086/solr/gcr");
}
@Bean
public SolrTemplate solrTemplate(SolrClient client) throws Exception {
return new SolrTemplate(client);
}
}
Run Code Online (Sandbox Code Playgroud)
我遇到的问题是我无法弄清楚如何拥有两个完全独立的Solr客户端,每个客户端指向不同的URL.由于需要bean solrClient()和solrTemplate(),并且尝试使用不同的URL创建新的Context,只需使用首先创建的bean覆盖solrClient和solrTemplate bean.如果它们是唯一定义的Solr客户端,则每个客户端都可以正常工
简而言之,我如何创建两个(或更多)不同的Spring Solr客户端,每个客户端连接到不同的URL?
附加信息是对评论的回复......
我试图简单地重新创建具有不同配置的SolrContext类.考虑以下内容:
@Configuration
@EnableSolrRepositories(basePackages={"foo.utilities.solr.repos.different"}, multicoreSupport=true)
public class DifferentSolrContext {
@Bean
public SolrClient solrClient() {
return new HttpSolrClient("http://SomethingDifferent:8086/solr/something");
}
@Bean
public SolrTemplate solrTemplate(SolrClient client) throws Exception {
return new SolrTemplate(client);
}
}
Run Code Online (Sandbox Code Playgroud)
这里发生的是@ Bean的solrClient和solrTemplate在启动期间创建bean时被覆盖.
INFO : org.springframework.beans.factory.support.DefaultListableBeanFactory - Overriding bean definition for bean 'solrClient' with a …Run Code Online (Sandbox Code Playgroud) 我有一个Spring Boot,Spring Data JPA(休眠)Web应用程序,想要引入文本搜索功能。
我了解以下内容
休眠搜索或spring-data- *都可以集成到我的应用中
休眠搜索可以与嵌入式Lucene或外部弹性搜索一起使用。
外部弹性搜索/ Solr有其自身的优势,但我可以接受
嵌入式也从这里开始。
我的问题
hibernate-search spring-data spring-data-jpa spring-data-solr spring-data-elasticsearch
我正在使用 spring-data-solr(version = 1.4.0.RELEASE) 搜索包含连字符但得到零结果的字段。我的索引字段之一包含“沃尔玛”的值,当我搜索“wal”时,它给出了正确的结果,但在搜索“wal-”时,我得到的结果为零。我之前尝试添加转义反斜杠字符 - 但它没有帮助。有人可以请告知这里可能是什么问题吗?
下面是我的 schema.xml 的快照。
<fieldType name="text_en_splitting" class="solr.TextField" positionIncrementGap="100" autoGeneratePhraseQueries="true">
<analyzer type="index">
<tokenizer class="solr.WhitespaceTokenizerFactory"/>
<!-- in this example, we will only use synonyms at query time
<filter class="solr.SynonymFilterFactory" synonyms="index_synonyms.txt" ignoreCase="true" expand="false"/>
-->
<!-- Case insensitive stop word removal.
-->
<filter class="solr.StopFilterFactory"
ignoreCase="true"
words="lang/stopwords_en.txt"
/>
<filter class="solr.WordDelimiterFilterFactory" generateWordParts="1" generateNumberParts="1" catenateWords="1" catenateNumbers="1" catenateAll="0" splitOnCaseChange="1"/>
<filter class="solr.LowerCaseFilterFactory"/>
<filter class="solr.KeywordMarkerFilterFactory" protected="protwords.txt"/>
<filter class="solr.PorterStemFilterFactory"/>
</analyzer>
<analyzer type="query">
<tokenizer class="solr.WhitespaceTokenizerFactory"/>
<filter class="solr.SynonymFilterFactory" synonyms="synonyms.txt" ignoreCase="true" expand="true"/>
<filter class="solr.StopFilterFactory"
ignoreCase="true"
words="lang/stopwords_en.txt"
/>
<filter …Run Code Online (Sandbox Code Playgroud) 我有一个与 Spring Boot 1.4.2.RELEASE 一起运行的 REST Web 服务。我尝试在我的项目中使用 spring data solr,但出现了VerifyError。
Caused by: java.lang.VerifyError: Cannot inherit from final class
at java.lang.ClassLoader.defineClass1(Native Method) ~[na:1.8.0_40-ea]
at java.lang.ClassLoader.defineClass(ClassLoader.java:760) ~[na:1.8.0_40-ea]
at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142) ~[na:1.8.0_40-ea]
at java.net.URLClassLoader.defineClass(URLClassLoader.java:455) ~[na:1.8.0_40-ea]
at java.net.URLClassLoader.access$100(URLClassLoader.java:73) ~[na:1.8.0_40-ea]
at java.net.URLClassLoader$1.run(URLClassLoader.java:367) ~[na:1.8.0_40-ea]
at java.net.URLClassLoader$1.run(URLClassLoader.java:361) ~[na:1.8.0_40-ea]
at java.security.AccessController.doPrivileged(Native Method) ~[na:1.8.0_40-ea]
at java.net.URLClassLoader.findClass(URLClassLoader.java:360) ~[na:1.8.0_40-ea]
at java.lang.ClassLoader.loadClass(ClassLoader.java:424) ~[na:1.8.0_40-ea]
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308) ~[na:1.8.0_40-ea]
at java.lang.ClassLoader.loadClass(ClassLoader.java:357) ~[na:1.8.0_40-ea]
at org.apache.http.impl.client.DefaultHttpClient.createHttpParams(DefaultHttpClient.java:158) ~[httpclient-4.5.2.jar:4.5.2]
at org.apache.http.impl.client.AbstractHttpClient.getParams(AbstractHttpClient.java:467) ~[httpclient-4.5.2.jar:4.5.2]
at org.apache.solr.client.solrj.impl.HttpClientUtil.setFollowRedirects(HttpClientUtil.java:290) ~[solr-solrj-5.5.3.jar:5.5.3 8655b97b27d8da470c8235683af11a8b85a2b10f - anshum - 2016-09-01 13:05:41]
at org.apache.solr.client.solrj.impl.HttpClientConfigurer.configure(HttpClientConfigurer.java:58) ~[solr-solrj-5.5.3.jar:5.5.3 8655b97b27d8da470c8235683af11a8b85a2b10f - anshum - 2016-09-01 …Run Code Online (Sandbox Code Playgroud) spring-data-solr ×12
java ×6
solr ×6
solrj ×5
spring ×5
spring-data ×3
spring-boot ×2
spring-rest ×1
verifyerror ×1