Hi,
You can’t force case-insensitive search from the search query. The way the search query is analyzed and matched against a field from the Solr index is determined by the field type. In other words the search results depend very much on the way the data is indexed. The page tags are stored using a Static List property (of the XWiki.TagClass
). Static List property values are currently indexed as strings, which means no transformation is performed. Each tag ends up as a token in the Solr index. See:
- xwiki-platform/xwiki-platform-core/xwiki-platform-search/xwiki-platform-search-solr/xwiki-platform-search-solr-api/src/main/java/org/xwiki/search/solr/internal/metadata/AbstractSolrMetadataExtractor.java at xwiki-platform-15.8 · xwiki/xwiki-platform · GitHub
- xwiki-platform/xwiki-platform-core/xwiki-platform-search/xwiki-platform-search-solr/xwiki-platform-search-solr-api/src/main/java/org/xwiki/search/solr/internal/metadata/AbstractSolrMetadataExtractor.java at xwiki-platform-15.8 · xwiki/xwiki-platform · GitHub
- xwiki-platform/xwiki-platform-core/xwiki-platform-search/xwiki-platform-search-solr/xwiki-platform-search-solr-api/src/main/java/org/xwiki/search/solr/internal/metadata/DocumentSolrMetadataExtractor.java at xwiki-platform-15.8 · xwiki/xwiki-platform · GitHub
The field name is property.XWiki.TagClass.tags_string
. The _string
suffix triggers the string indexing, see xwiki-platform/xwiki-platform-core/xwiki-platform-search/xwiki-platform-search-solr/xwiki-platform-search-solr-server/xwiki-platform-search-solr-server-core/src/main/resources/conf/managed-schema at xwiki-platform-15.8 · xwiki/xwiki-platform · GitHub .
What options do you have? The simplest is probably to create another Solr field that indexes the same information (page tags) differently. You can do this from the Solr schema:
<copyField source="property.XWiki.TagClass.tags_string" dest="property.XWiki.TagClass.tags_sortString" />
This creates a new property.XWiki.TagClass.tags_sortString
field that indexes the page tags as “sortString” which is defined here xwiki-platform/xwiki-platform-core/xwiki-platform-search/xwiki-platform-search-solr/xwiki-platform-search-solr-server/xwiki-platform-search-solr-server-core/src/main/resources/conf/managed-schema at xwiki-platform-15.8 · xwiki/xwiki-platform · GitHub and seems to do what you want xwiki-platform/xwiki-platform-core/xwiki-platform-search/xwiki-platform-search-solr/xwiki-platform-search-solr-server/xwiki-platform-search-solr-server-core/src/main/resources/conf/managed-schema at xwiki-platform-15.8 · xwiki/xwiki-platform · GitHub
lowercases the entire field value, keeping it as a single token.
Of course, you have to re-index you wiki after customizing the Solr schema.
Hope this helps,
Marius